Использование #define
окончательно не рекомендуется в C++. Даже в C вы можете использовать typedef
для типов.
typedef unsigned __int8 U8;
Однако, как было упомянуто Dave (см его ссылку на полный список), то есть атомные определения в C++, такие как:
std::atomic_uint_fast8_t
// or
std::atomic<std::uint_fast8_t>
// with the typedef:
typedef std::atomic_uint_fast8_t U8;
Тем не менее, если вы хотите быть немного менее развитой, вы можете включать в себя cstdint
включают, что в большинстве случаев то, что будет работать на большинстве компьютеров:
#include <cstdint>
это дает стандартный [и] Инт [8,16,32,64] _t типов. Таким же типом, как указано выше, будет:
uint8_t my_var;
// if you really want to use a typedef:
typedef uint8_t U8;
U8 my_var;
Эти типы переносятся, без необходимости в дополнительном typedef.
Для float
и double
они обычно переносимы. То, что не является long double
, который редко используется в любом случае. Вы могли бы еще ЬурейеЕ, на всякий случай:
typedef float F32;
Тогда в любом месте вашего кода, вы должны использовать эти определения, а не типы по умолчанию C/C++ (т.е. char
, short
, int
, long
запрещены.)
Поместите все те заголовки, которые включают в себя все другие файлы на C++.
Update:
достаточно памяти в каждом типе
Очевидно, что если вы используете uint8_t
, то вы можете быть уверены, что вы по крайней мере, иметь 8 битное число. Это может быть 16 бит тоже ...(некоторые процессоры ограничены таким образом) Аналогично, uin32_t
будет иметь как минимум 32 бита.
Возможно, у вас есть проверка времени компиляции, если вы действительно хотите убедиться. Это использует sizeof()
с шаблоном. Смотрите здесь:
Compile-time sizeof conditional
Обратите внимание, что это не относится к играм. Любое программирование должно тщательно выбирать их типы переменных. Все больше и больше людей используют 64-битные целые числа, чтобы удостовериться, что они могут поддерживать размеры более 2 ГБ (4 ГБ, если вы используете неподписанные ...)
FYI - одна из европейских ракет Ariane (это был французский во время аварии) был взорван, потому что переменная составляла 8 бит, когда она должна была быть 16 бит. Это дает вам представление, почему это важно ...
Вы также можете использовать [typedefs] (http://en.wikipedia.org/wiki/Typedef). Это на самом деле предпочтительная техника. – BWG
http://en.cppreference.com/w/cpp/atomic/atomic – David
В чем ваш вопрос, _specifically_? Как использовать псевдонимы? Как получить целые числа фиксированной ширины? Как получить атомные типы? Какие? –