Bazı ortamlarda, biri yalnızca ihtiyaç duyulan başlık dosyalarını içeriyorsa, derleme en hızlı olacaktır. Diğer ortamlarda, tüm kaynak dosyalar aynı birincil başlık koleksiyonunu kullanabiliyorsa, derleme optimize edilecektir (bazı dosyalar ortak alt kümenin dışında ek başlıklara sahip olabilir). İdeal olarak, birden çok #include işleminin hiçbir etkisi olmayacak şekilde üstbilgiler oluşturulmalıdır. #İnclude deyimlerini, dahil edilecek dosyanın include korumasına yönelik denetimlerle çevrelemek iyi olabilir, ancak bu, söz konusu korumanın biçimine bir bağımlılık yaratır. Ayrıca, bir sistemin dosya önbelleğe alma davranışına bağlı olarak, hedefi tamamen # ifdef'le sonuçlanan gereksiz bir #include uzun sürmeyebilir.
Dikkate alınması gereken başka bir şey de, eğer bir işlev bir yapıya işaretçi götürürse, prototipi şu şekilde yazabilir:
void foo (struct BAR_s * bar);
Kapsam içinde olması gereken BAR_s için bir tanım olmadan. Gereksiz içeriklerden kaçınmak için çok kullanışlı bir yaklaşım.
Not - Projelerimin çoğunda, her modülün #inclu olmasının beklendiği, tamsayı boyutları için typedef'ler ve birkaç ortak yapı ve birleşim gibi şeyler içeren bir dosya olacak [örn.
typedef union {
imzasız uzun l;
işaretsiz kısa lw [2];
işaretsiz karakter lb [4];
} U_QUAD;
(Evet, bir big-endian mimarisine geçersem başımın belaya gireceğini biliyorum, ancak derleyicim sendikalarda anonim yapılara izin vermediğinden, birlik içindeki baytlar için adlandırılmış tanımlayıcılar kullanmak, bunlara şu şekilde erişilmesini gerektirecektir. theUnion.b.b1 vb. oldukça sinir bozucu görünüyor.