Нужно ли мне менять тип переменной на uint64
при любых обстоятельствах? Что делать, если max of var не превышает 0xffffffff
?
Ничто не говорит о том, что вы должны изменить типы данных при компиляции для 64-битной системы. Параметр uint32
будет вести себя так же, как и раньше. (Однако вам, вероятно, следует использовать uint32_t
из <stdint.h>
, если вы хотите гарантировать, что ваши типы данных работают правильно.)
Есть несколько других мест, где вы хотите Размер ваших переменных можно изменить, но поведение будет автоматически корректным, если вы используете правильные типы данных:
uintptr_t
Это целое число размером с указатель. Таким образом, вы можете разыграть от void*
до uintptr_t
и обратно, не теряя никакой информации. Если вместо этого вы преобразуете от void*
до uint32_t
, вы повредите ваши указатели. off_t
Размер смещений файлов может измениться (в зависимости от вашей цепочки инструментов), поэтому вам следует использовать этот соответствующий typedef.