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

 

posted @ 2010-12-05 17:52  Socrates  阅读(129)  评论(0编辑  收藏  举报