象征常数

时间:2010-03-20 09:51:44

标签: c

#include<conio.h>
#include<stdio.h>
#define abc 7

int main()
{

int abc=1;

printf("%d",abc);

getch();

return 0;
}

为什么这个程序会给出编译时错误

5 个答案:

答案 0 :(得分:3)

您指定的7=1无效。由于您已将abc定义为7,因此预处理器会转换行:

int abc=1;

为:

int 7=1;

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

答案 1 :(得分:2)

您将abc定义为7

然后int abc=1转化为int 7=1这是荒谬的。

为什么你这样做?

答案 2 :(得分:2)

  

您将“abc”宏值声明为7。   所以如果再次包含宏名称为   变量,它会给出错误。

考虑以下

  

abc值是7.所以它会被处理掉   因为7 = 1。所以它会给出错误。

答案 3 :(得分:0)

C预处理器用abc盲目替换7导致:

int 7=1;

这显然是一个错误。

答案 4 :(得分:0)

当预处理器用abc替换7时,以下行变为无效:

int 7=1;

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