"Je problém, jak do printf dostat "32 bitový unsigned integer", když většina implementací printf podporuje jen unsigned short/long/někdy i long long."
Kdysi existovaly i 36-bitové počítače, takže logicky se počet bitů do standartu C nedával. Takže program napsaný podle C89 by na těch počítačích běžet mohl, program napsaný podle C99 už ne. Časy se změnily a dnes už každý počítač má velikost slova násobek 8.
"Přesto všechno je multiplatformní program daleko dražší a složitější na vývoj"
Ono není složitější to napsat multiplatformě, ale je to o dost složitější na testování. Protože jednotlivé platformy mají různé bugy, program se taky na počátku nepodaří napsat úplně čistě. V komerčním světě se to dělá tak, že se na ostatní platformy kašle. Ve free světě se to dělá tak, že se program píše multiplatformní, ale testuje se jen na platformě, co má vývojář --- a pokud někdo zjistí, že to na jiné nefunguje, tak pošle bug report nebo patch.