Тест на Linux 32bit:Почему переменная становится равной нулю?
Я нашел ошибку в своем коде C, и я упростить код и поместить его здесь:
#define al *(char*)(eax_ptr)
int eax = 0;
int *eax_ptr = &eax;
int edx = 0;
char hh = 254;
.......
eax = hh;
edx = al;
Проблема заключается в том, что, EDX должно быть 254, но где я использую gdb для отладки, I fould edx равным нулю.
Может ли кто-нибудь помочь мне с этой проблемой ..?
Спасибо!
http://en.wikipedia.org/wiki/Endianness –
Какой процессор это? Ваши имена переменных намекают на x86, но я не вижу, как он может печатать ноль, если это не big-endian. – Mysticial
@Mysticial x86 Я использую Macbook и запускаю в нем виртуальную машину Linux. – computereasy