C语言中“|”符号的问题
程序开头有这样的定义:
/*the fixed colors*/
#define BLACK 0
#define YELLOW(RED | GREEN)
#define MAGENTA(RED | BLUE)
#define CYAN(GREEN | BLUE)
#define WHITE(RED | GREEN | BLUE)
运行的时候提示错误是这样的:
test.c
C:\Documents and Settings\Administrator\test.c(15) : error C2010: '|' : unexpected in macro formal parameter list
C:\Documents and Settings\Administrator\test.c(15) : error C2010: 'G' : unexpected in macro formal parameter list
C:\Documents and Settings\Administrator\test.c(16) : error C2010: '|' : unexpected in macro formal parameter list
C:\Documents and Settings\Administrator\test.c(16) : error C2010: 'B' : unexpected in macro formal parameter list
C:\Documents and Settings\Administrator\test.c(17) : error C2010: '|' : unexpected in macro formal parameter list
C:\Documents and Settings\Administrator\test.c(17) : error C2010: 'B' : unexpected in macro formal parameter list
C:\Documents and Settings\Administrator\test.c(18) : error C2010: '|' : unexpected in macro formal parameter list
C:\Documents and Settings\Administrator\test.c(18) : error C2010: 'G' : unexpected in macro formal parameter list
C:\Documents and Settings\Administrator\test.c(18) : error C2010: '|' : unexpected in macro formal parameter list
C:\Documents and Settings\Administrator\test.c(18) : error C2010: 'B' : unexpected in macro formal parameter list
C:\Documents and Settings\Administrator\test.c(35) : error C2065: 'YELLOW' : undeclared identifier
C:\Documents and Settings\Administrator\test.c(41) : error C2065: 'WHITE' : undeclared identifier
C:\Documents and Settings\Administrator\test.c(42) : error C2065: 'MAGENTA' : undeclared identifier
执行 cl.exe 时出错.
请问大家这个是什么问题?我用的是VC++6.0编译环境!谢谢!
[解决办法]
YELLOW,MAGENTA,CYAN,WHITE后面各加一个空格。
[解决办法]
- C/C++ code
/*the fixed colors*/#define BLACK 0#define YELLOW (RED | GREEN)#define MAGENTA (RED | BLUE)#define CYAN (GREEN | BLUE)#define WHITE (RED | GREEN | BLUE)
[解决办法]
[解决办法]
楼上正解
#define macro如果紧接着括号会把括号里的内容当作这个宏的参数