预处理器的小结


1.对程序作预处理前,编译器会对它进行几次翻译处理。
   。首先把源代码中出现的字符映射到源字符集。
   。编译器查找反斜线后紧跟换行符的实例并删除这些实例。
   。编译器将文本划分成预处理的预言符号序列和空白字符及注释序列。注意的一点是编译器用一个空白字符代替每一个注释。
2.预处理器不进行计算,它只是按照指令进行文字替换操作。
3.宏常量可以用来指定标准数组的大小并作为const值得初始化值。(以下只限在c中,不限在c++中)
   。#define LIMIT 20
   。const int LIM=50;
   。static int data1[LIMIT];//合法
   。static int data2[LIM];  //无效
   。const int LIM2=2*LIMIT;//合法
   。const int LIM3=2*LIM;   //无效
4.在处理主体中的多个空格时,字符型字符串和语言符号类型字符串采用不同的方法。用字符型字符串的观点来看,空格也是主体的一部分;而用语言符号类型字符串的观点看,空格只是分割主体中语言符号的符号。
5.程序运行时,函数调用把参数的值传递给函数。而编译前,宏调用把参数的语言符号传递给程序。
6.在宏中最好不要使用增量或减量运算符。
7.在类函数宏的替换部分中,#符号用作一个预处理运算符,可以把语言符号转换成字符串;##运算符把两个语言符号组合成单个语言符号。
8.头文件stdvar.h提供了创建用户自定义的带可变数量参数的函数的工具。
9.宏与函数之间的选择实际上是时间与空间上的权衡,宏产生内联代码。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值