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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值