#include<conio.h>
#include<stdio.h>
#define abc 7
int main()
{
int abc=1;
printf("%d",abc);
getch();
return 0;
}
为什么这个节目是给编译时错误符号常量
#include<conio.h>
#include<stdio.h>
#define abc 7
int main()
{
int abc=1;
printf("%d",abc);
getch();
return 0;
}
为什么这个节目是给编译时错误符号常量
你分配7=1
这是无效的。既然你已经定义abc
为7,预处理器行:
int abc=1;
到:
int 7=1;
这是C(语法错误我gcc
说之前的数字常量语法错误)。
C预处理器的确具有7
盲更换abc
导致:
int 7=1;
这显然是错误的。
当预处理程序替换abc
与7
,以下行变为无效:
int 7=1;
用C的标识符,不能只是一个数字。
您将abc
定义为7
。
然后int abc=1
被转换成荒谬的int 7=1
。
为什么你这样做?
您声明“abc”宏值为7。 因此,如果再次包含宏名称为 变量,则会发生错误。
考虑以下
ABC值为7。因此,这将处理 为7 = 1。所以它会给出错误。
*什么*编译错误? – 2010-03-20 09:52:54