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

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

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

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

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

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

  • int64_t
  • uint64_t

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

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

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

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

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

Ответчик действительно спросил об int16 (и т. Д.), А не (уродливый) int16_t (и т. Д.).

Стандартных заголовков нет, ни в папке Linux / usr / include /, которые определяют их без «_t».