SORU
16 Temmuz 2009, PERŞEMBE


Satır içi işlevleri vs ön işlemci makroları

Nasıl bir satır içi işlevi basit bir makro farkı nedir?

CEVAP
16 Temmuz 2009, PERŞEMBE


Ön işlemci makroları sadece ikame desenler kodunuzu uygulanır. Herhangi bir derleme başlamadan önce kendi açılımları ile değiştirilir, çünkü hemen hemen her yerde kodunuzda kullanılabilir.

Satır içi işlevleri doğrudan çağrı onların site içine enjekte olan gerçek işlevleri vardır. Sadece bir işlev çağrısı uygun olduğu kullanılabilirler.

Şimdi, bildiğim kadarıyla makrolar kullanarak satır içi işlevleri işlev gibi bir ortamda, tedbirli olun:

  • Makrolar tür güvenli değildir, ve derleme aşaması hataları makro genişleme sorunlardan kaynaklanan bildirir syntatically doğru olup olmadıklarına bakılmaksızın genişletilebilir.
  • Makrolar, bir sorun neden beklemiyorsun nereye bağlamda kullanılabilir
  • Makrolar satır içi işlevleri mutlaka bunu yapma, oysa diğer makrolar genişletin - onlar daha esnektir.
  • Makro giriş ifadeleri desen göründükleri yerde kopyalanır beri genleşmesi nedeniyle yan etkilere neden olabilir.
  • Satır içi işlevi her zaman inlined olması garanti değildir - bazı Derleyiciler sadece yayım yapılarında, ya da bunu yapmak için özel olarak yapılandırılmış. Ayrıca, bazı durumlarda satır içi uygulaması mümkün olmayabilir.
  • Satır içi işlevler, değişkenler (özellikle statik olanlar için kapsam sağlar, ön işlemci makroları sadece kod blokları içinde bunu yapabilir { ... } ve statik değişkenleri tam olarak aynı şekilde davranır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Elly Awesome

    Elly Awesome

    15 ŞUBAT 2010
  • MattSteffanina 2

    MattSteffani

    28 Kasım 2007
  • NCIX Tech Tips

    NCIX Tech Ti

    2 Ocak 2007