Teknik olarak, inline
anahtar kelimesi, yalnızca tanımın birden çok çeviri biriminde izinli olduğu anlamına gelir. Yani, bir başlık dosyasında tanımlanmış bir satır içi işleve sahipseniz ve bu başlık birden çok kaynak dosyaya eklendiyse, bu iyi olur. Satır içi olmayan, şablon olmayan bir işlev için, bu geçersiz olur.
Ancak derleyiciler, çağrılan işlevin kodunu görebilmekten yararlanabilir ve yararlanabilirler. Bu, yalnızca satır içi işlevler için değil, aynı zamanda kodu görülebilen diğer işlevler için de geçerlidir. Çoğu derleyici, kodu satır içi tutup koymayacağınıza dair iyi bir tahminde bulunmaya çalışır. Kodun satır içi olması, programı daha büyük veya daha küçük, daha hızlı veya daha yavaş hale getirebilir. Derleyici, kod satır içi olduğunda kodun hem daha hızlı hem de daha küçük olacağını belirleyebilirse, o zaman bunu yapar. Aksi taktirde bu işlemin dikkate alınması gerekir.
Birçok modern derleyici, bağlantı süresi optimizasyonu gerçekleştirebilir; burada başlangıçta belirtilmeyen kod, bağlantı sırasında bazı maliyetlerle bağlantı aşamasında satırlara eklenebilir. Bağlantı zamanına kadar ertelendiğinde kaybolan belirli optimizasyon fırsatları olabilir.
Kendi deneyimlerimde, küçük işlevlerin inline olması, genellikle hem boyut hem de hız için her zaman bir kazanç olduğunu fark ettim. Daha büyük işlevler için, programların daha hızlı ama daha büyük olmasını sağladığını görüyorum, ancak programların daha yavaş ve daha büyük olmasını nadiren de gördüm. Belirli bir işlevin performansı önemliyse, satır içi veya satır içi seçim yapmanıza yardımcı olacak ölçümler yapmanız gerekir.
Bir üstbilgi dosyası eklediğinizde, önişlemci tam olarak içerdiği kodu kopyalayıp yapıştırır. – Andrew
Burada bir göz atmanızı öneriyorum: http://programmers.stackexchange.com/questions/180904/are-header-files-actually-good –
'inline' çoğunlukla C++ 'da bu kodu inline bağlantı zaman adı çarpışmalarının nasıl çözüleceği ile ilgili daha fazla şey var. "Kod satır içi" koymak C++ standardı bağlamında çok az anlam ifade etmektedir. – Yakk