保留标识符
C 标准把一部分标识符保留给实现和标准库使用。用户代码若声明或定义这些名字,轻则触发诊断,重则产生未定义行为。 。
1. 常见保留规则
以一个下划线加大写字母开头(如 _IOBUF)或以两个下划线开头(如 __size)的名字保留。以单个下划线开头、但具有外部链接的名字保留。除此之外,标准库头文件公开的外部标识符同样不能被用户重新定义。
2. 一个对比例子
c
/* 不推荐:未定义行为 */
int __count = 0;
int _Engine = 0;1
2
3
2
3
c
/* 推荐:普通项目命名 */
int engine_count = 0;
int mdr_engine_state = 0;1
2
3
2
3