
Hello John, Monday, October 15, 2007, 7:51:13 AM, you wrote:
You say "the system's C compiler" as if there was only one. It's quite common for UNIXoid systems to have several C compilers installed simultaneously; and if you use the module corresponding to the wrong compiler, you get silent data loss. I wouldn't risk it.
Not in general, the exact layout of C structs and whatnot is set forth in the ABI spec developed by the chip manufacturer. All compilers must follow it or they cannot even use the same libraries. that said, some compilers out there do sometimes deviate from the ABI, or allow it as an option, but there is generally an accepted ABI for a OS-platform pair. Otherwise things like 'libc' would not be abled to be linked against.
for instance the ABI for x86-64 is here http://www.x86-64.org/documentation/abi-0.98.pdf
i bet that this document was written exactly because "old systems" (read: i386) had so much confusion :)) i definitely know that it was a great problem in win32 compilers -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com