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

  • Metheud

    Metheud

    9 EYLÜL 2006
  • SHAYTARDS

    SHAYTARDS

    1 EKİM 2008
  • sonia989

    sonia989

    26 EKİM 2006