Aracılığıyla paylaş


Satır içi işlevler

inline anahtar sözcüğü, derleyiciye işlev çağrısının her örneği için işlev tanımındaki kodu değiştirmesini söyleyen bir işlev tanımlayıcısıdır.

Açıklamalar

Satır içi kod değişimi yalnızca derleyicinin takdirine bağlı olarak gerçekleşir. Örneğin, derleyici adresi alınırsa veya satır içi için çok büyükse bir işlevi satır içi olarak satır içi yapmaz. Derleyici bir üst bilgi dosyasında tanımlanan bir işlevi satır içi olarak tanımlamadığında, tek tanım kuralı (ODR) ihlallerini önlemek için bağlayıcı için işaretlenir.

bir işlevin satır içi oluşturma adayı olarak kabul edilmesi için, dönüş türünü ve herhangi bir parametre türünü bildiren bir imza ile yeni stil işlev tanımını kullanması gerekir.

Bir satır içi işlevi belirtmek için bu biçimi kullanın:

inline işlev tanımı

Satır içi işlevler, eşdeğer işlev çağrısından daha hızlı ve bazen daha küçük kod oluşturur:

  • Satır içi işlevler, yığını bağımsız değişkenler ve bir dönüş değeri için hazırlamak için gereken zamandan ve işlev çağrısının atlama ve dönüşünü yürütme süresinden tasarruf eder.

  • Birkaç kez tekrarlandığında bile, derleyici bağımsız değişkenleri ve dönüş değerini işlemek için kod oluşturmadığından, üç satırlık veya daha az satır içi küçük işlevler eşdeğer işlev çağrısından daha az kod oluşturur.

  • Derleyici, normal işlevlerin kullanılamayabileceği yollarla satır içi olarak oluşturulan işlevleri iyileştirebilir. Derleyici genellikle farklı yordamlar arasında iyileştirme gerçekleştirmez.

Satır içi derleyici koduyla kullanılan inline işlevleri karıştırmayın. Satır içi derleyici hakkında daha fazla bilgi için bkz . Satır içi derleyici.

Microsoft'a özgü

Microsoft ayrıca derleyiciye işlev çağrısının her örneği için işlev tanımındaki kodu değiştirmesini bildirmek için ve __inline anahtar sözcüklerini de destekler__forceinline. __inline anahtar sözcüğü, için inlinebir eş anlamlıdır. __forceinline anahtar sözcüğü derleyiciye işlevin satır içine alınıp alınmayacağı konusunda buluşsal yöntemleri gevşetmelerini söyler, ancak bir işlevin satır içine alınacağını garanti etmez.

Derleyici seçeneği_inline_forceinline belirtilmediği sürece, önceki sürümlerle __inline uyumluluk için __forceinline ve /Za sırasıyla ve için eş anlamlılardır.

END Microsoft'a özgü

Ayrıca bkz.

inline, __inline, __forceinline