Существуют ли типы, такие как uint32, int32, uint64, int64, определенные в любом заголовке stdlib?

Я часто вижу исходный код, используя такие типы, как uint32, uint64, и мне интересно, должны ли они быть определены программистом в коде приложения или определены в стандартном заголовке lib.

Какой лучший способ иметь эти типы в исходном коде приложения?

Ответ 1

C99 stdint.h определяет следующие:

  • int8_t
  • int16_t
  • int32_t
  • uint8_t
  • uint16_t
  • uint32_t

И, если архитектура поддерживает их:

  • int64_t
  • uint64_t

В stdint.h существуют различные другие целочисленные typedef.

Если вы застряли без среды C99, тогда вам, вероятно, следует предоставить свои собственные typedef и использовать C99.

uint32 и uint64 (т.е. без суффикса _t), вероятно, специфичны для приложения.

Ответ 2

Эти целые типы определены в stdint.h

Ответ 3

Если вы используете C99, просто включите stdint.h. BTW, 64-битные типы существуют, если процессор поддерживает их.