какой тип целых чисел без знака в c?

uint8 может быть представлен как ubyte, uint16 может быть представлен как uword, uint32 может быть представлен как ulong, uint64 может быть представлен как?

Я ищу относительно того, как целые числа без знака могут быть представлены как тип данных в c, но у меня возникла путаница с тем, как представить uint64 ??
Можно ли использовать uint64 как udouble в c ?? пожалуйста, кто-нибудь направит меня ??
Это поддержит ??

что может быть спецификаторами формата для всего вышеперечисленного ??

Я просто добавляю эту строку, потому что она спрашивает, что тело не соответствует требованию, и предлагает добавить некоторый контент. Поэтому я добавил это.

-5

Решение

Все эти типы uint8, uint16, uint32, uint64 не являются стандартными фундаментальными типами и являются либо именами typedef, либо типами, определяемыми реализацией

Что касается uint64, то его можно определить, например, как

typedef unsigned long long uint64;

Учтите, что размеры целочисленных типов определяются реализацией. Так что может быть, что в приведенном выше определении достаточно использовать unsigned long потому что на какой-то платформе sizeof( unsigned long) может быть равен 8 байтов.

Если вы хотите использовать стандартные целочисленные типы, которые не зависят от используемой платформы, вы должны включить заголовок <cstdint>

Существуют следующие определения типов без знака среди других определенных типов

typedef unsigned integer type uint8_t; // optional
typedef unsigned integer type uint16_t; // optional
typedef unsigned integer type uint32_t; // optional
typedef unsigned integer type uint64_t; // optional

typedef unsigned integer type uint_fast8_t;
typedef unsigned integer type uint_fast16_t;
typedef unsigned integer type uint_fast32_t;
typedef unsigned integer type uint_fast64_t;

typedef unsigned integer type uint_least8_t;
typedef unsigned integer type uint_least16_t;
typedef unsigned integer type uint_least32_t;
typedef unsigned integer type uint_least64_t;
3

Другие решения

#include <stdint.h>

чтобы получить все типы, определенные в глобальном пространстве имен.

#include <cstdint>

чтобы определить это в пространстве имен std,

На моей реализации, т.е. в stdint.h Я могу найти:

#if __WORDSIZE == 64
typedef unsigned long int   uint64_t;
#else
__extension__
typedef unsigned long long int  uint64_t;
#endif

и для uint32_t:

#ifndef __uint32_t_defined
typedef unsigned int        uint32_t;
# define __uint32_t_defined
#endif
2

По вопросам рекламы [email protected]