C ++ derleyicilerinin birbiriyle uyumlu olmadığını anlıyorum. Ancak, özellikle C için bu konuda hiçbir şey bulamadım. C standardının, derleyicilerin uygun gördükleri şeyleri uygulaması için çok yer bıraktığını biliyorum: örneğin, çoğu (tüm?) Veri türlerinin boyutu ve hizalaması, bazı minimum garantiler için uygulama tanımlı bir tasarruftur. Bu nedenle, iki derleyici (veya aynı derleyicinin iki sürümü) birçok ayrıntıya katılmayabilir.
Farklı derleyicilerle derlenen iki nesne dosyasının gerçekten doğru şekilde bağlanacağının garantisi olmadığını düşünerek haklı mıyım? Örneğin, işaretçilerin boyutu bir nesne dosyasında 32 bit, diğerinde 64 bit olabilir. Ama eğer öyleyse, neden C kütüphaneleri bazen önceden derlenmiş biçimde dağıtılır? Yaptıkları aynı derleyiciyi (örn. Gcc) kullanacağım veya ikili uyumluluğu sağlamak için kullanılan fiili bir standart var mı? Yabancı Dil Arabirimine sahip diğer diller, C nesne dosyalarıyla bağlantı kurarken her şeyin düzgün bir şekilde hizalanmasını nasıl sağlar?