Точные типы данных С++

программирование С++ типы данных

Тип данных long int различается на 32-битных и 64-битных платформах.
Подскажите псевдонимы для стандартных типов, которые точно определяют сколько байт содержит число.
Компилятор gcc.
Пробовал word, dword - компилятор их не знает.

Примечание:
SLonoed
Не уверен...
Я и прошу помощи, потому что не знаю что вводить.
За 8-байтное целое у меня отвечает long long,
Могу ли я быть уверенным, что если напишу

#if x86
#define WORD short
#define DWORD int
#define LONG long long
#else
#define WORD short
#define DWORD int
#define LONG long int

то это везде будет правильно? Платформы же не две.

Я когда спрашивал, то рассчитывал, что есть встроенные в компилятор типы.
Например, когда я программировал в Borland C++ Builder такими типами являлись соответственно int8 int16 int32 и т.д.
Ответы:
Ну так введите их)
Это те же дефайны, который находятся в блоке
#if x86
#else
(примерно)
В стандартах С++ не пишут сколько байтов занимает тот или иной тип, по крайней мере это касается целочисленных типов: char, short, int, long, long long. Вместо этого там описывают диапазон значений для каждого типа. Причем различные реализации могут их нарушать в большую сторону, в меньшую нет. К примеру тип char выделен диапазон -127 до 127, но в реализации переменная может принять и значения по больше, как пример с int, его диапазон -32767 до +32767, в то время как в большинстве компиляторов int может принимать -2^31 - 1 до +2^31 - 1.
В книге Страструпа "Язык программирования С++" говорится что всего лишь можно рассчитывать на то что:
sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
Обычно компиляторы предоставляют фиксированные типы, так что дефайн лучше сделать компиляторозависимым.
Например __int32, int32_t, int32
Для gcc будут работать int32_t, из stdint.h, для MS __int32


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.