标识符的命名规则(此规则强于ISO/ANSI C的规定)
1、不要使用任何以下划线开头的名称;
2、不要使用任何匹配标准宏的名称;
3、不要使用任何标准库中已经使用过或者留作“未来使用”的函数和全局变量名称。
4、不要重定义标准库的类型定义和标签名称。
未来使用的名称模式
<ctype.h>
is[a-z]* to[a-z]* function
<errno.h>
E[0-9]* E[A-Z]* macro
<locale.h>
LC[A-Z]* macro
<math.h>
cosf/sinf/sqrtf ect. function
cosl/sinl/sqrtl ect. function
<signal.h>
SIG[A-Z]* macro
<stdlib.h>
str[a-z]* function
<string.h>
mem[a-z]* str[a-z]* wcs[a-z]* function
(is[a-z]*表示isa-isz包括isa-isz后面接任意合法字符:isabs2等。)
C语言的4种命名空间:
1、行标(label,即goto的目的地)
2、标签(tag,结构、联合和枚举的标签)
3、结构或联合成员(每个结构或联合一个命名空间)
4、其他的普通标识符(函数、变量、类型定义名称、枚举常量)
4种空间相互独立(比如说结构的标签可以和任何其他普通的变量名称相同),但是,各空间内部的名称不能相同(比如不能定义相同名称的结构和联合)。