Man! We spent 3 hours last night debugging a C program crashing in the JPEG decoder.
It turns out a compiler switch set enums to be 1 byte. So the code passed in structs of the wrong size for the JPEG library.
The C languages are saddled with assembly language macros and linking. #including interface definition text rather than symbols! What a bad idea.