在C语言编程中,标识符就是用来给变量、函数、数组等命名的字符序列。按照用途和来源,C语言标识符可以明确划分为三类:关键字、预定义标识符和用户自定义标识符。搞清楚它们的区别,对写出可编译、易维护的代码非常关键。

一、关键字
关键字是C语言标准保留的具有固定语法含义的单词,编译器直接用它们表达语句结构。用户不能把关键字当作自己变量的名字。常见关键字有 int、char、if、else、while、return 等。
下面代码如果尝试用关键字做变量名,就会编译失败:
#include <stdio.h>
int main() {
int if = 10; // 错误:if是关键字,不能做标识符
printf("%dn", if);
return 0;
}
二、预定义标识符
预定义标识符是C语言系统里提前定义好的一些名字,主要包括库函数名(如 printf、scanf)和预处理命令(如 define、include)。从语法上用户能重新定义它们,但这样会覆盖原有功能,实际开发中不推荐。
示例展示预定义标识符被误用的情况:
#include <stdio.h>
int printf = 5; // 语法允许但极不推荐,覆盖了库函数
int main() {
// 此时无法再正常调用原来的printf输出函数
return 0;
}
三、用户自定义标识符
用户自定义标识符是程序员根据需要自己起的名字,用来标识变量、函数、结构体类型等。命名要满足规则:只能由字母、数字和下划线组成,且首字符不能是数字,也不能和关键字冲突。
合法与非法自定义标识符对照:
| 类型 | 示例 | 说明 |
|---|---|---|
| 合法 | age, _count, sum1 | 符合命名规则 |
| 非法 | 1st, a-b, int | 数字开头、含减号、用了关键字 |
一个简单的自定义标识符使用示例:
#include <stdio.h>
int calc_sum(int a, int b) { // calc_sum为用户自定义函数标识符
int result; // result为用户自定义变量标识符
result = a + b;
return result;
}
int main() {
int x = 3, y = 4;
printf("sum=%dn", calc_sum(x, y));
return 0;
}
小结
总结一下,C语言标识符有哪三类?分别是关键字、预定义标识符和用户自定义标识符。写代码时避开关键字、谨慎对待预定义标识符、规范起好自定义名字,就能减少很多低级错误。