fk0, легенда (16.08.2013 17:48, просмотров: 226) ответил Nikolay801_ на в стандарте написано что размеры short, int и long имеют не убывающую последовательность, те могут быть 8-16-32, а могут и 32-32-32. так что uint8_t, uint16_t, uint32_t и сжигай сколько хочешь.
Для uintXX_t хотя бы есть: 1) аналог limits.h (в stdint.h), 2) макросы PRIxxx и SCNxxx (в inttypes.h). Но это плохой метод из-за: 1) возможных ошибок (передаваемый указатель или переменная по-значению уже/шире ожидаемого функцией, работающей со стандартными типами, т.к. нужно не забывать вручную к ним приводить и не всегда это возможно); 2) из-за низкой эффективности реализации типов низкой разрядности на CPU с высокой разрядностью (принудительное обнуление старших разрядов после каждой операции, неэффективный код при обращении к невыравненным данным); 3) возможны ошибки переполнения т.к. нужно использовать правильные функции (div, abs и т.п.) и компилятор не предупредит.
[ZX]