Предполагая, что вы используете компилятор, который поддерживает C99 (или даже просто stdint.h), есть ли причина не использовать фиксированные ширины целочисленных типов, таких как uint8_t?
Одна из причин, о которой я знаю, заключается в том, что при использовании символов char
имеет смысл использовать char
вместо использования (u)int8_t
s, как упоминалось в этом вопросе.
Но если вы планируете хранить число, когда вы хотите использовать тип, который не знает, насколько он большой? То есть В какой ситуации вы хотите сохранить число в unsigned short
, не зная, есть ли это 8, 16 или даже 32 бита вместо использования uint16t
?
Следуя этому, считается ли лучше использовать фиксированные целые числа ширины или использовать обычные целые типы и просто никогда ничего не принимать и использовать sizeof
, если вам нужно знать, сколько байтов они используют?