Visual C++, 7.0: Глюк с __int64
От: CMaker  
Дата: 12.11.04 00:47
Оценка:
Может у кого-нибудь было что-то подобное...
Имеется Visual C++, 7.0

В файле const.h пишу так:
const unsigned __int64 CONST_A = 0x0123456789ABCDEF;

потом в main.cpp
#include "const.h"

теперь заускаю дебагер и прямо на первой строчке

смотрю, что
CONST_A=0x0000000089abcdef

то есть заполняется ровно 4 байта из 8...

при чем все сломалось совсем недавно и пять минут назад все значения
инициализировались правильно.

Пересобираю, опять такие же ляпы.
чего посоветуете?
Re: Visual C++, 7.0: Глюк с __int64
От: Бабошин Андрей Александрович Германия http://andreybaboshin.livejournal.com/
Дата: 13.11.04 15:23
Оценка:
Здравствуйте, CMaker, Вы писали:

CM>Может у кого-нибудь было что-то подобное...

CM>Имеется Visual C++, 7.0

CM>В файле const.h пишу так:

CM> const unsigned __int64 CONST_A = 0x0123456789ABCDEF;

CM>потом в main.cpp

CM> #include "const.h"

CM>теперь заускаю дебагер и прямо на первой строчке


CM>смотрю, что

CM> CONST_A=0x0000000089abcdef

CM>то есть заполняется ровно 4 байта из 8...


CM>при чем все сломалось совсем недавно и пять минут назад все значения

CM>инициализировались правильно.

CM>Пересобираю, опять такие же ляпы.

CM>чего посоветуете?
Попробуйте вернуть все изменения назад, и вносить их "малыми порциями"
Re: Visual C++, 7.0: Глюк с __int64
От: Сергей Мухин Россия  
Дата: 14.11.04 08:41
Оценка:
Здравствуйте, CMaker, Вы писали:


CM>В файле const.h пишу так:

CM> const unsigned __int64 CONST_A = 0x0123456789ABCDEF;

попробуй

const unsigned __int64 CONST_A = 0x0123456789ABCDEFLL;
---
С уважением,
Сергей Мухин
Re: Visual C++, 7.0: Глюк с __int64
От: alex_e Россия нет
Дата: 14.11.04 16:29
Оценка:
>const unsigned __int64 CONST_A = 0x0123456789ABCDEF;
Нужно указать тип константы явно, для __int64 это i64

0x0123456789ABCDEFui64;
Re: як его перекосило....
От: CMaker  
Дата: 14.11.04 22:49
Оценка: 3 (1)
Пробовал и тип явно указывать: LL, ui64.
Не помогло.

Зато я посмотрел asm, выяснилось, что работает все при этом правильно.
А вот debugger в VS никак не хочет показывать значение правильно.

При этом если написать вот так:
const unsigned __int64 CONST_A = 0x0123456789ABCDEF;

а потом:

__int64 test = CONST_A;

то в дебагере test примет правильное значение, а CONST_A так и будет урезанным на половину.

Думаю теперь, как бы мой дебагер вернуть к нормальной работе....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.