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

  • hans peder sahl

    hans peder s

    22 Temmuz 2009
  • Attempts at least

    Attempts at

    1 Ocak 2007
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011