Ich bin momentan dabei, eine Netzwerkanwendung zu schreiben, die dementsprechend überall gleichgroße Datentypen verwenden sollte. In C99 gibts zwar den Header stdint.h, in dem int8_t und Co definiert sind, aber offensichtlich scheinen den selbst nach 10 Jahren noch nicht alle Compiler zu kennen. Zumindest sagt mir das aktulle MS Visual Studio, dass es weder stdint.h, noch cstdint kennt. Mein aktueller Ansatz war folgender:
Nicht elegant, funktioniert nur auf Prozessoren, bei denen 1 Byte = 8 Bit richtig und garantiert nicht, dass man exakt die Größe hat, die man will, sondern nur, dass man den kleinstmöglichen Datentyp hat. Insgesamt unbefriedigend.