Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> typedef типа из 4 байт, как? платформонезависимо 
V
    Опции темы
asmdzen
Дата 2.8.2011, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



в общем нужны переменные типа DWORD, как оказалось DWORD на самом деле это unsigned int, есть какие-то гарантии что sizeof(DWORD) всегда будет 4?
в общем вопрос мне кажется простым ) но ответа дать не могу.
если коротко то я просто хочу без глюков пере компилировать программу для 64 бит.
PM MAIL   Вверх
mes
Дата 2.8.2011, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(asmdzen @  2.8.2011,  19:02 Найти цитируемый пост)
 есть какие-то гарантии что sizeof(DWORD) всегда будет 4?

со стороны языка таких гарантий нет



--------------------
PM MAIL WWW   Вверх
asmdzen
Дата 2.8.2011, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



так что мне стоит за typedef'ить чтоб получить тип из 4 байт?
PM MAIL   Вверх
boostcoder
Дата 2.8.2011, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



просто юзать нужно стандартные типы, типа тех что в cstddef
PM WWW   Вверх
asmdzen
Дата 2.8.2011, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



поскольку я его долго найти не мог, а когда нашел то не увидел ничего конкретного, можете просто сказать как выбрать тип который всегда будет размером в 4 байта?
PM MAIL   Вверх
boostcoder
Дата 2.8.2011, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



std::int32_t;
std::uint32_t;

Добавлено через 8 минут и 12 секунд
т.е. cstdint

Добавлено через 12 минут и 32 секунды
лучше, конечно, если ты прочтешь топик по теме: http://forum.vingrad.ru/forum/topic-290012.html
PM WWW   Вверх
asmdzen
Дата 2.8.2011, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



Цитата

/* 7.18.1.1  Exact-width integer types */
typedef signed char int8_t;
typedef unsigned char   uint8_t;
typedef short  int16_t;
typedef unsigned short  uint16_t;
typedef int  int32_t;
typedef unsigned   uint32_t;
typedef long long  int64_t;
typedef unsigned long long   uint64_t;

т.е. это гарантирует что к примеру int8_t (который на самом деле char) будет иметь длину в 8 бит для любого компилятора?
у меня сейчас так: typedef unsigned int u32; мне нужна гарантия что этот u32 действительно будет 32-х битным типом когда я перекомпилирую под 64 битную систему.

Добавлено через 8 минут и 34 секунды
Цитата(boostcoder @  2.8.2011,  20:55 Найти цитируемый пост)
лучше, конечно, если ты прочтешь топик по теме

не заметил, будем посмотреть, спасибо.

PM MAIL   Вверх
phprus
Дата 3.8.2011, 10:29 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 22.8.2006

Репутация: нет
Всего: 3



asmdzen
В разных компиляторах/архитектурах эти типы могут быть определены по разному, для гарантий размера.

PM MAIL WWW ICQ   Вверх
asmdzen
Дата 3.8.2011, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



**


Профиль
Группа: Участник
Сообщений: 345
Регистрация: 28.11.2010

Репутация: 3
Всего: 5



всем спасибо, вопрос закрыт.
использую 
Цитата(boostcoder @  2.8.2011,  20:55 Найти цитируемый пост)
std::int32_t;
std::uint32_t;


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0513 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.