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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言问题:标识符为啥不能使用关键字?相关的知识,希望对你有一定的参考价值。

会引起二意性,编译器会误解意思,编译不下去。
例如
void main()

int if=1;
// 。。。。


标识符 用了 if, 编译器见到if,认为是条件语句开始,那么if以前应当是上一个语句,而语句同语句间应当用分号分隔,编译器在if前当然找不到分号,于是报错“if 前漏了分号”。if 后面应当是小括号,写条件表达式,可是发现了等号,于是报第二个错“等号,语法错误".
最后编不出obj和exe文件。
参考技术A 事实上已经定义的标示符也不能再定义。已经用过的名字不可以再用而已。 参考技术B 如果把关键字当着标示符用。编译系统怎样知道是标示符还是关键字。况且关键字有特殊用途 参考技术C 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

14 标识符

1,C语言 对各种变量、函数等命名时使用的字符序列称为标识符

  凡是自己可以起名字的地方都叫标识符

2,命名规则:

  ①由26个英文字母大小写,0-9,_ 或 $ 组成

  ②数字不可以开头

  ③不可以使用关键字和保留字,但能包含关键字和保留字

  ④C语言中严格区分大小写,长度无限制

  ⑤标识符不能包含空格

3,命名规范

  ①程序中不得出现仅靠大小写区分的相似的标识符。如 int x, X;  变量 x 和 X 容易混淆

  ②所有宏定义、枚举常数、常量(只读变量)全用大写字母命名,用下划线分隔单词,如: const double TAX_RATE =0.08; TAX_RATE 是只读变量   #define FILE_PATH " / user/ tmp"

  ③定义变量别忘了初始化,定义变量时编译器不一定清空了这块内存,它的值可能是无效的数据,运行数据,会异常退出

  ④变量名、函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写(小驼峰)

4,关键字

  ①被C语言赋予了特殊含义,用作专门用途的字符串

  ②特点:关键字中所有字母都为小写

    技术图片

 

以上是关于C语言问题:标识符为啥不能使用关键字?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在C语言中,“scanf”竟然可以作为自定义函数的函数名而不报错??

为啥在 C++ 中覆盖是可选的?

在C语言中scanf能作为用户标示符么?为啥?scanf不是关键词么?

C语言教程第二期

Go语言关键字和标识符

Go语言关键字和标识符