-
-
[求助]一个自定义宏错误与__LINE__相关
-
发表于:
2009-8-31 14:44
4626
-
#include <windows.h>
#include <stdio.h>
#define MyPUSH(x) __asm push (x & 0xF7)
//#define MyPUSH(x) __asm push (x) 这样可以通过 (1)
int main ()
{
printf ("%d\n",__LINE__);
MyPUSH(__LINE__); //MyPUSH(123); 这样也可以通过(2)
return 0;
};
//error C2425: 'AND' : non-constant expression in 'first operand'
第一个操作数不是常数
编译通过 (1) 在define中 不能进行运算吗?不对吧
编译通过 (2) 在define中 运入常数后,也能进行运算
__LINE__ 是被看成非常数吗?
这个问题怎么解决?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)