|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 19, 2003 21:16:06 Столкнулся со странным глюком (?) в VC .NET При использовании в параметризованном #define встроенного ассемблера (__asm), перестают изменяться параметры, при чем только в том случае, если параметр идет после ассемблерной вставки. Пример: #define TEST1(V) V = 5; __asm nop; #define TEST2(V) __asm nop; V = 5; void f() { ... DWORD dwVal = 0; TEST1(dwVal); // после исполнения dwVal = 5, как и должно быть TEST2(dwVal); // после исполнения dwVal = 0 !!! ... } в чем же дело? |
|
|
Дата: Авг 19, 2003 22:12:52 · Поправил: volodya Ну и гляди, что ты получил в конце: int main(void) { DWORD dwVal = 0; dwVal = 5; __asm nop;; __asm nop; dwVal = 5;; return 0; } Убери ";" после define. И вообще - для асма ";" - это комментарий! Да, на глюки в компиляторе и линкере надо грешить в последнюю очередь. Действительно в последнюю. Большинство глюков допускаем мы сами. |
|
|
Дата: Авг 19, 2003 22:44:35 volodya Действительно VC тоже принимает ";" как начало комментария... Честно сказать, упустил из виду Спасибо :) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.063 |