在 C 中,除了关键字之外,C 程序中的所有内容都被视为标识符。标识符可以是变量、常量、函数和用户定义数据的名称。变量名可以由字母(大写、小写)、数字 (0-9) 和 _(下划线)字符组成。但是任何变量的名称都不能以数字开头。现在我们必须知道为什么我们不能命名一个以数字开头的变量。以下可能是它的原因。编译器有7个阶段如下:
词法分析 语法分析 语义分析 中间代码生成 代码优化 代码生成 符号表在编译这段代码时,在词法分析阶段避免了回溯。像Apple;这样的变量,在词法分析阶段遇到字母'A'字符,编译器马上就知道它是一个标识符。但是,像 123apple 这样的变量;,编译器将无法确定它是数字还是标识符,直到它命中'a'并且它需要回溯才能进入词法分析阶段以识别它是一个变量。但是编译器不支持它。 当您解析令牌时,您只需查看第一个字符以确定它是标识符还是文字,然后将其发送到正确的函数进行处理。所以这是一个性能优化。