preloader image
C 语言的标识符, 保留标识符, 关键字

C 语言的标识符, 保留标识符, 关键字

C99 和 C11 允许使用更长的标识符(identifier),但是编译器只能识别前 63 个字符,对于外部标识符,只允许使用 31 个字符。

实际上,可以使用更长的字符,但是编译器会忽略超出部分的字符。如果两个标识符,前 63 个字符全部一样,之后后面的不一样,那么编译器可能会将其视为一个名称,也可能不会,在标准中是未定义的。

标识符可以使用大小写字母、数字和下划线。不能用数字开头。

标识符错误属于语法错误。

标识符的命名规则(必须遵守的硬性规定)

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

数字不可以开头

不可以是关键字,但可以包含关键字

C99 和 C11 允许使用更长的标识符名,但是编译器只识别前 63 个字符。(会忽略超出的字符)

不允许有空格。

严格区分大小写字母。比如:Hello、hello 是不同的标识符。

标识符的命名建议(建议遵守的软性要求)

在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。如:sum,name,max,year,total 等。

不要出现仅靠大小写区分不同的标识符。如:name、Name 容易混淆

尽量避免名字中出现数字编号,如 value1、value2 等,除非逻辑上需要编号。

习惯上,所有宏定义、枚举常数、常量 (只读变量) 全用大写字母命名,用下划线分隔单词。

比如: const double TAX_RATE = 0.08; //TAX_RATE 只读变量

系统内部使用了一些下划线开头的标识符(比如两个下划线开头的变量名、一个下划线 + 大写英文字母开头的变量名)。比如,C99 标准添加的类型 _Bool。为防止冲突,建议用户尽量避免使用下划线开头的标识符。

下划线通常用于连接一个比较长的变量名。如:max_classes_per_student。

变量名、函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz (驼峰法,小驼峰)。比如:short stuAge = 20; ,tankShotGame。

操作系统和 C 库通常使用一个或两个下划线字符开始的标识符,因此自己在程序中要注意不要使用一个或两个下划线开始的标识符,这样的标识符都是保留标识符(reserved identifier)。当同名时,虽然不会发生语法错误,但是会导致名称冲突。

关键字(keyword)是 C 语言的词汇,不能用作标识符,否则报语法错误。

传统的 C 语言(ANSI C)有 32 个关键字。如下:

类型

具体关键字

控制语句关键字(12 个)

break, case, continue, default, do, else, for, goto, if, return, switch, while

数据类型关键字(12 个)

char, enum, double, long, float, int, short, signed, struct, unsigned, union, void

存储类型关键字(4 个)

auto, extern, register, static

其他关键字(4 个)

const, sizeof, typedef, volatile

后续,1999 年,C99 标准增加了 5 个关键字:inline、restrict、_Bool、_Complex 和 _Imaginary。

2011 年,C11 标准又增加了 7 个关键字:_Alignas、_Alignof、_Atomic、_Static_assert、_Noreturn、_Thread_local 和 _Generic。

Copyright © 2088 暴雪游戏怀旧特刊 All Rights Reserved.
友情链接