Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Стандарты для типов / 21 сообщений из 21, страница 1 из 1
21.11.2005, 11:31
    #33389466
Стандарты для типов
Существуют ли в C++ четкие стандарты для примитивных типов, т.е. сколько байт отводится на short,int,double...
Есть ли 64 битные типы?
...
Рейтинг: 0 / 0
21.11.2005, 13:02
    #33389834
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
char
short
long
long long
...
Рейтинг: 0 / 0
21.11.2005, 13:49
    #33390002
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
новый гостьСуществуют ли в C++ четкие стандарты для примитивных типов, т.е. сколько байт отводится на short,int,double...
Есть ли 64 битные типы?
в том то и дело, что на разных платформах по разному....
...
Рейтинг: 0 / 0
21.11.2005, 14:38
    #33390179
Стандарты для типов
а можно ли как то универсально определить размерность?
...
Рейтинг: 0 / 0
21.11.2005, 14:59
    #33390262
rikman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
sizeof()
Код: plaintext
1.
printf("short=%d, int=%d, long=%d, float=%d, double=%d\n", sizeof(short),sizeof(int),sizeof(long),sizeof(float),sizeof(double));
...
Рейтинг: 0 / 0
21.11.2005, 15:02
    #33390275
Стандарты для типов
sizeof() -это хорошо - но вот как быть увереным что short это 2 байта для любой платформы
...
Рейтинг: 0 / 0
21.11.2005, 15:08
    #33390294
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
Зачем тебе это ?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
21.11.2005, 15:17
    #33390325
rikman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
1.
новый гостьа можно ли как то универсально определить размерность?
2.
новый гостьsizeof() -это хорошо - но вот как быть увереным что short это 2 байта для любой платформы
С логикой вообще дружите или где?
...
Рейтинг: 0 / 0
21.11.2005, 15:32
    #33390373
Стандарты для типов
rikman1.
новый гостьа можно ли как то универсально определить размерность?
2.
новый гостьsizeof() -это хорошо - но вот как быть увереным что short это 2 байта для любой платформы
С логикой вообще дружите или где?

что за наезды?

Вопросы вполне логичны ! Мне нужно четко знать что например тип short - 2 байта внезавиимо от платформы на которой компилю! Это нужно ну например проверить 9ый бит равен 0 или 1.
...
Рейтинг: 0 / 0
21.11.2005, 17:40
    #33390790
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
Мдя. Проблема стара как сам язык. В документации по стандарту
С++ нигде не указывается точно разрядность. Есть скупое упоминание
о том, что int равен размеру машинного слова для текущей платформы.
Посмотрите как проблему разрядности решают другие программеры.
Обычно в хедеры пихают макросы, которые проверяют тип платформы
и создают соответствующие typedef-ы. Некоторые производители
компилеров создают свои собственные зарезервированые слова
(__int32, __int64) .
...
Рейтинг: 0 / 0
21.11.2005, 18:01
    #33390853
homichus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
В книге Страуструпа по ЦПП про размеры говорится так:
размеры в цпп выражаются в единицах размера чар, т.е. чар по определению раверн 1.

1=sizeof(char)<=sizeof(short)<=sizeof(int)<=sizeof(long)
1<=sizeof(bool)<=sizeof(short)
......................

еще говорится, что шорт не меньше 16ти бит, а чар восьми.
и т.п. там еще про это написано, см книгу.

а как резюме ответа на вопрос - нет.



Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
22.11.2005, 17:30
    #33393175
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
новый гостьСуществуют ли в C++ четкие стандарты для примитивных типов, т.е. сколько байт отводится на short,int,double...
Есть ли 64 битные типы?

нету правил. Вот в VC++ есть
__int8, __int16, __int32, __int64

очень удобно
...
Рейтинг: 0 / 0
29.11.2005, 17:11
    #33406566
sdk
sdk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
Наскока я знаю, абсолютно можно быть уверенны тока в одном - что char это 8 бит на любой платформе.

Так что, если задача работа с битами, то уж проще битовые поля что ли использовать.

Если же нужны стандартные типы - то наиболее безопасно char. Или несколько подряд идущих char'ов.

То есть, слава Богу, sizeof(char) == 1 и sizeof(char[5]) == 5

_______________________________________________
Человек ленив, и именно лень - двигатель прогресса.
...
Рейтинг: 0 / 0
29.11.2005, 18:05
    #33406748
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
sdkНаскока я знаю, абсолютно можно быть уверенны тока в одном - что char это 8 бит на любой платформе.
Нет, нельзя :)
Char равен байту на любой платформе, но байт не обязательно восемь бит.
...
Рейтинг: 0 / 0
30.11.2005, 00:27
    #33407211
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
Нет, в языке нету. Есть кажется в posix и в конкретных компиляторах.
...
Рейтинг: 0 / 0
30.11.2005, 12:08
    #33408007
sdk
sdk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
White Owl sdkНаскока я знаю, абсолютно можно быть уверенны тока в одном - что char это 8 бит на любой платформе.
Нет, нельзя :)
Char равен байту на любой платформе, но байт не обязательно восемь бит.

А на каких платформах байт не 8 бит? Не стеб, интересно правда. Не сталкивался.
...
Рейтинг: 0 / 0
30.11.2005, 12:14
    #33408047
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
На почивших
...
Рейтинг: 0 / 0
30.11.2005, 12:16
    #33408058
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
Кстати из экзотики были еще компьютеры с троичной уравновешенной системой счисления
...
Рейтинг: 0 / 0
01.12.2005, 21:02
    #33412436
Teem
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
В С++ стандартные типы уже не типы, а классы. Вот и создавай свой пользовательский класс, чтобы быть уверенным, что на любой платформе будет одно и тоже количество бит.
...
Рейтинг: 0 / 0
02.12.2005, 12:08
    #33413299
freebeer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
sdk
А на каких платформах байт не 8 бит? Не стеб, интересно правда. Не сталкивался.
См программирование микроконтроллеров. В качестве примера . Не сошелся на Intel свет клином
...
Рейтинг: 0 / 0
02.12.2005, 12:53
    #33413489
Сергей Ильич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Стандарты для типов
sdk White Owl sdkНаскока я знаю, абсолютно можно быть уверенны тока в одном - что char это 8 бит на любой платформе.
Нет, нельзя :)
Char равен байту на любой платформе, но байт не обязательно восемь бит.

А на каких платформах байт не 8 бит? Не стеб, интересно правда. Не сталкивался. На последних x86 не выровненные по 32бита октеты из памяти изымать накладно.
В Джаве тип byte который всегда восемь бит хоть и есть, но JVM его как правило выравнивает (и в массивах тоже!), так что никакой экономии памяти по сравнению с int нет.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Стандарты для типов / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]