size_t 8 байт в release сборке
От: Logot Украина  
Дата: 17.03.13 22:58
Оценка:
Привет
Большой проект, 32 битное приложение, собирается в Visual Studio 2008. В debug size_t весит 4 байта, но в release — 8, я не могу найти, что его делает таковым, не подскажете?
Re: size_t 8 байт в release сборке
От: Evgeny.Panasyuk Россия  
Дата: 18.03.13 00:36
Оценка:
Здравствуйте, Logot, Вы писали:

L>Большой проект, 32 битное приложение, собирается в Visual Studio 2008. В debug size_t весит 4 байта, но в release — 8, я не могу найти, что его делает таковым, не подскажете?


Скорей всего release — x64. Проверь sizeof(void*).
Re: size_t 8 байт в release сборке
От: okman Беларусь https://searchinform.ru/
Дата: 18.03.13 05:28
Оценка:
Здравствуйте, Logot, Вы писали:

L>Привет

L>Большой проект, 32 битное приложение, собирается в Visual Studio 2008. В debug size_t весит 4 байта, но в release — 8, я не могу найти, что его делает таковым, не подскажете?

Правый клик на size_t, "Go To Definition".
Если size_t был кем-то переопределен с помощью #undef/#define, "Студия" должна
показать нужное место. Если нет — будет "Symbol 'size_t' not defined" и проблема,
скорее всего, в конфигурации, как уже написали выше.
Re[2]: size_t 8 байт в release сборке
От: Logot Украина  
Дата: 18.03.13 10:46
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, Logot, Вы писали:


L>>Большой проект, 32 битное приложение, собирается в Visual Studio 2008. В debug size_t весит 4 байта, но в release — 8, я не могу найти, что его делает таковым, не подскажете?


EP>Скорей всего release — x64. Проверь sizeof(void*).


Mar 18 12:45:20.209 debug: sizeof(void*)= 4

Re[2]: size_t 8 байт в release сборке
От: Logot Украина  
Дата: 18.03.13 10:50
Оценка:
Здравствуйте, okman, Вы писали:

O>Здравствуйте, Logot, Вы писали:


L>>Привет

L>>Большой проект, 32 битное приложение, собирается в Visual Studio 2008. В debug size_t весит 4 байта, но в release — 8, я не могу найти, что его делает таковым, не подскажете?

O>Правый клик на size_t, "Go To Definition".

O>Если size_t был кем-то переопределен с помощью #undef/#define, "Студия" должна
O>показать нужное место. Если нет — будет "Symbol 'size_t' not defined" и проблема,
O>скорее всего, в конфигурации, как уже написали выше.

не был он переопределн
Re: size_t 8 байт в release сборке
От: Logot Украина  
Дата: 18.03.13 11:05
Оценка:
Здравствуйте, Logot, Вы писали:

L>Привет

L>Большой проект, 32 битное приложение, собирается в Visual Studio 2008. В debug size_t весит 4 байта, но в release — 8, я не могу найти, что его делает таковым, не подскажете?

Нашел — /Wp64

Всем спасибо
Re[2]: size_t 8 байт в release сборке
От: okman Беларусь https://searchinform.ru/
Дата: 18.03.13 11:28
Оценка: 7 (1)
Здравствуйте, Logot, Вы писали:

L>>Большой проект, 32 битное приложение, собирается в Visual Studio 2008. В debug size_t весит 4 байта, но в release — 8, я не могу найти, что его делает таковым, не подскажете?


L>Нашел — /Wp64


Уверены ?
/Wp64 — это детект 64-битных проблем, устаревший флаг компилятора.
На размер size_t он влиять не должен.

У Visual C++ есть макрос _Wp64, который определен, когда установлен флаг /Wp64.
Может, где-то записана условная директива препроцессора, изменяющая size_t в
зависимости от этого макроса ?
Re[3]: size_t 8 байт в release сборке
От: Logot Украина  
Дата: 18.03.13 11:58
Оценка: :)))
Здравствуйте, okman, Вы писали:

O>Здравствуйте, Logot, Вы писали:


L>>>Большой проект, 32 битное приложение, собирается в Visual Studio 2008. В debug size_t весит 4 байта, но в release — 8, я не могу найти, что его делает таковым, не подскажете?


L>>Нашел — /Wp64


O>Уверены ?

O>/Wp64 — это детект 64-битных проблем, устаревший флаг компилятора.
O>На размер size_t он влиять не должен.

O>У Visual C++ есть макрос _Wp64, который определен, когда установлен флаг /Wp64.

O>Может, где-то записана условная директива препроцессора, изменяющая size_t в
O>зависимости от этого макроса ?

Да
Я увидел много ворнингов:

warning C4267: 'return' : conversion from 'size_t' to 'unsigned int', possible loss of data

и грешным делом подумал, что size_t == 8 байт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.