SORU
14 EKİM 2011, Cuma


'arasında " fark;durağan" ve "statik satır içi" fonksiyonu?

IMO her iki birim sadece, tercüme bir kapsam için işlev yapmak

arasındaki fark nedir "" ve "statik satır içi" işlevi? statik

GÜNCELLEME

neden inline başlık dosyası .c dosyası koymak gerekir?

CEVAP
14 EKİM 2011, Cuma


inline derleyici bildirirgirişimibu işlev, gerçek bir arama yürütmek yerine çağıran kodun içine gömmek içerik.

Sık sık adı verilen küçük fonksiyonlar için büyük bir performans fark yaratabilir.

Ancak, bu sadece bir "ipucu", ve derleyici olabilir görmezden, ve çoğu derleyici çalışacağız "satır içi" bile anahtar sözcük kullanılmıyor, bir parçası olarak iyileştirmeleri, nerede mümkün.

örneğin:

static int Inc(int i) {return i 1};
.... // some code
int i;
.... // some more code
for (i=0; i<999999; i = Inc(i)) {/*do something here*/};

Bu sıkı döngünün her yineleme üzerinde bir işlev çağrısı yapacak, fonksiyon ve içerik aslında derleyici arama gerçekleştirmek için gereken kodu önemli ölçüde daha az. inline aslında bir eşdeğeri: yukarıdaki kodu dönüştürmek için bir derleyici eğitecektir

 int i;
 ....
 for (i=0; i<999999; i = i 1) { /* do something here */};

Gerçek işlevi atlama arayıp dönüş

Belli ki bu nokta, kod gerçek bir parçası olmadığını göstermek için bir örnektir.

static kapsam ifade eder. C değişken/fonksiyon sadece aynı çeviri birimi içinde kullanılabilir anlamına gelir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AmeriiK_HD

    AmeriiK_HD

    16 AĞUSTOS 2012
  • Jimmie Jones

    Jimmie Jones

    16 Kasım 2007
  • Utah Valley Online

    Utah Valley

    9 AĞUSTOS 2010