আমি বুঝতে পারি যে সি ++ সংকলক একে অপরের সাথে সামঞ্জস্য নয়। তবে আমি বিশেষত সি এর জন্য এই বিষয়টিতে কিছুই খুঁজে পাচ্ছিলাম না। আমি জানি যে সি স্ট্যান্ডার্ড কমপ্লায়ারদের জিনিসগুলি যথাযথভাবে প্রয়োগ করার জন্য প্রচুর জায়গা ছেড়ে দেয়: উদাহরণস্বরূপ, বেশিরভাগ (সমস্ত?) ডেটা ধরণের আকার এবং প্রান্তিককরণ কিছু ন্যূনতম গ্যারান্টিগুলির জন্য প্রয়োগ-সংজ্ঞায়িত। অতএব, দুটি সংকলক (বা একই সংকলকের দুটি সংস্করণ) অসংখ্য বিবরণে দ্বিমত পোষণ করতে পারে।
আমি কি এই ভেবে সঠিক হয়েছি যে বিভিন্ন কম্পাইলার দিয়ে সংকলিত দুটি অবজেক্ট ফাইল আসলে সঠিকভাবে লিঙ্ক করবে তার কোন গ্যারান্টি নেই? উদাহরণস্বরূপ, পয়েন্টারগুলির আকার একটি অবজেক্ট ফাইলে 32 বিট এবং অন্যটিতে 64 বিট হতে পারে। তবে যদি তা হয় তবে সি লাইব্রেরিগুলিকে কেন কখনও কখনও প্রাকম্পাইল আকারে বিতরণ করা হয়? এমন কি কোন প্রত্যাশা রয়েছে যে আমি তাদের মতো একই সংকলকটি ব্যবহার করব (উদাঃ জিসিসি), বা বাইনারি সামঞ্জস্যতা নিশ্চিত করতে কোনও ডি ফ্যাক্টো স্ট্যান্ডার্ড ব্যবহার করা হচ্ছে? এবং বিদেশী ভাষা ইন্টারফেসের সাথে অন্যান্য ভাষাগুলি কীভাবে সি অবজেক্ট ফাইলগুলির সাথে লিঙ্ক করার সময় জিনিসগুলি যথাযথভাবে আপ হবে তা নিশ্চিত করে?