SORU
19 EKİM 2008, Pazar


dış satır içi

""Derleyici için bir öneri kendisi ve onun descretion de olabilir veya satır içi işlevi değil, aynı zamanda bağlantılı nesne kodu. üretecek içi anlıyorum

"Statik satır içi" aynı (satır içi olabilir veya olmayabilir) ama ne zaman başka bir modül için bağlantı olabilir beri) inlined bağlantılı nesne kodu. üretmek değil bence

"Dış satır içi" resmin içine sığacak?

Varsayalım istiyorum değiştirmek için basit bir makro ile bir satır içi işlev ve gerektiren bu işlevi alır inlined (örneğin, çünkü kullandığı __DOSYA__ ve __SATIR__ makrolar gereken gidermek için arayan ama bu denilen işlevi). Bu işlev inlined değil diye bir derleyici veya linker hata görmek istiyorum. "Dış" bu? içi mi (Eğer öyle değilse, bu davranış, bir makro ile yapıştırma dışında ulaşmak için bir yol yok sanırım.)

C ve C arasında bir fark var mı?

Farklı bir derleyici satıcıları ve sürümleri arasında bir fark var mı?

CEVAP
19 EKİM 2008, Pazar


K&R C veya C89, içi dilinde bir parçası değil. Pek çok Derleyiciler bir uzantısı olarak uygulanan, ancak tanımlanan anlambilim nasıl çalıştığı ile ilgili olduğunu hiç. GCC satır içi uygulaması ilk uygulayan ülkelerden biri oldu ve tanıtılan "", "statik satır içi" ve "" yapıları; en ön derleyici C99 genellikle takip et. içi dış satır içi

GNU89:

  • "": fonksiyonu (sadece bir ipucu oldu) inlined olabilir. içi Out-of-line sürümü her zaman yayılan ve dışarıdan görünür. Dolayısıyla sadece böyle bir maddeye tanımlanan bir derleme birimi, ve her ihtiyaçlarını görmek gibi bir out-of-line fonksiyon (ya da alacaksın yinelenen simgeleri, bağlantı zaman). <>içi" bir statik bir dosya oluşturmak olsa da dışarıdan görünür out-of-line bir sürümünü oluşturmaz. "statik yaktı Bir tanım kuralı asla yayılan harici bir sembol ne de bir çağrısı olmadığı için geçerli değildir.
  • "dış satır içi" out-of-line bir sürümünü oluşturmaz, ama bir ara belki bu nedenle başka bir derleme birimi olarak tanımlamak gerekir. ( Bir tanımlı kural geçerlidir ama; satırı sürümü ınline derleyici yerine çağırır diye burada sunulan, aynı kod olması gerekir.

C99 (veya GNU99):

  • "": "dış satır içi"; dışarıdan görünen işlevi duyulur, ama adında biri olabilir ve olmalıdır . gibi GNU içi
  • "dış satır içi": GNU gibi "": dışarıdan görünen kod en fazla bir çeviri birimi bu kullanabilmesi yayınlanır. içi
  • "statik satır içi": GNU gibi "statik satır içi". Bu gnu89 ve c99 arasında sadece taşınabilir

C :

Satır içi bir işlev satır içi her yerde her yerde, aynı tanıma uygun olmalıdır. Derleyici/bağlayıcı sembolün birden çok örneğini sıralamak. "Statik satır içi" ya da "" ama pek çok Derleyiciler onları (genellikle gnu89 modeli aşağıdaki). içi dış tanımı yok

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Awesome Toys TV

    Awesome Toys

    18 HAZİRAN 2014
  • Jonathan Leack

    Jonathan Lea

    26 ŞUBAT 2007
  • Kim Barbin

    Kim Barbin

    3 Mayıs 2012