2010-03-20 39 views
0
#include<conio.h> 
#include<stdio.h> 
#define abc 7 

int main() 
{ 

int abc=1; 

printf("%d",abc); 

getch(); 

return 0; 
} 

为什么这个节目是给编译时错误符号常量

+2

*什么*编译错误? – 2010-03-20 09:52:54

回答

3

你分配7=1这是无效的。既然你已经定义abc为7,预处理器行:

int abc=1; 

到:

int 7=1; 

这是C(语法错误我gcc说之前的数字常量语法错误)。

0

C预处理器的确具有7盲更换abc导致:

int 7=1; 

这显然是错误的。

0

当预处理程序替换abc7,以下行变为无效:

int 7=1; 

用C的标识符,不能只是一个数字。

2

您将abc定义为7

然后int abc=1被转换成荒谬的int 7=1

为什么你这样做?

2

您声明“abc”宏值为7。 因此,如果再次包含宏名称为 变量,则会发生错误。

考虑以下

ABC值为7。因此,这将处理 为7 = 1。所以它会给出错误。

相关问题