C语言问题:标识符为什么不能使用关键字?

如题所述

会引起二意性,编译器会误解意思,编译不下去。
例如
void main()
{
int if=1;
// 。。。。
}

标识符 用了 if, 编译器见到if,认为是条件语句开始,那么if以前应当是上一个语句,而语句同语句间应当用分号分隔,编译器在if前当然找不到分号,于是报错“if 前漏了分号”。if 后面应当是小括号,写条件表达式,可是发现了等号,于是报第二个错“等号,语法错误".
最后编不出obj和exe文件。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-02
事实上已经定义的标示符也不能再定义。已经用过的名字不可以再用而已。
第2个回答  2009-10-02
如果把关键字当着标示符用。编译系统怎样知道是标示符还是关键字。况且关键字有特殊用途
第3个回答  2009-10-02
C语言中有系统特殊定义的具有特定含义的标识符,不允许用户作为自定义标识符使用。例如:
auto break case char const
continue default do
double else
enum extern float for goto
if in long register return
short signed sizeof static struct
switch typedef union unsigned void
volatile while
相似回答