C核心技术手册(十二)

1.7.2 符号

符号可以为任意一个关键字、标识符、常量、字符串、标点符号、函数、操作符、两字母词等符合语法规则的表达式,如下C语句报含5个符号:

 printf("Hello, world./n");

单独的符号为:

 printf
 (
 "Hello, world./n"
 )
 ;

符号被预编译器在翻译的第三阶段解释,与第七阶段编译器解释符号仅有一点不同:

l 对于#include指示符,预处理理器认可<filename>”filename”两种模式;

l 在预处理阶段,字符常量和字符串不会由源字符集转化为执行时字符集;

l 与编译阶段不同,预处理器不区分整形常量和浮点型常量。

在源文件转为符号阶段,编译器(或者预编译器)通常遵循下面的原则:每个连续的非空白字符必须附加在准备被读取的符号中,除非当添加后会使用一个有效的符号非法,这个规则解决了如下模糊的表达式:

a+++b

因为第一个+不是以a开头的标识符或关键词的一部分,它开始一个新的符号,第二个+附加在第一个之后形成一个有效的符号,但第却不能附加第三个,所以,这个表达式将被解释为:

a ++ + b

你可能感兴趣的:(技术)