uint8 может быть представлен как ubyte, uint16 может быть представлен как uword, uint32 может быть представлен как ulong, uint64 может быть представлен как?
Я ищу относительно того, как целые числа без знака могут быть представлены как тип данных в c, но у меня возникла путаница с тем, как представить uint64 ??
Можно ли использовать uint64 как udouble в c ?? пожалуйста, кто-нибудь направит меня ??
Это поддержит ??
что может быть спецификаторами формата для всего вышеперечисленного ??
Я просто добавляю эту строку, потому что она спрашивает, что тело не соответствует требованию, и предлагает добавить некоторый контент. Поэтому я добавил это.
Все эти типы 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;
#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