预处理器(宏的用法)

本文介绍了宏预处理的概念,包括头文件展开、注释移除、宏替换和条件编译等步骤。重点讨论了宏替换的规则,如##运算符、参数括号、邻近字符连接和#运算符将变量转换为字符串。同时,提到了预定义符号如FILE、TIME、DATE和LINE的使用,以及预处理指令#include和#define的作用。文章还提醒了在定义宏时避免的常见错误,如末尾分号、未加括号的参数以及如何正确地定义代码块宏。最后,对比了宏函数与普通函数的区别。
摘要由CSDN通过智能技术生成

编译器在对宏预处理时,会:
1.将头文件展开
2.去掉注释
3.宏替换
4.条件编译

宏替换时应注意的几点:
1).## 会把它两边的字符转换为一个字符
2).宏要替换一个函数或者参数时,需要加上()
3).邻近字符连接原则
4).#value ,value指代一个变量名,#会将该字面值转换为一个字符串“value”

1.预处理时对预定义符号的执行:
FILE//当前正在编译的源文件
TIME//文件被编译的时间
DATE//文件被编译的日期
LINE//文件当前的行号
STDC
printf(“time : %s\n,line : %d\n,date : %s\n,file : %d\n”,TIME ,LINE ,DATE ,FILE );
预处理指令:
#include
#define
预处理器读入源代码,根据预处理指令对其进行修改,然后将处理过的源代码递交给编译器

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define DEBUG printf("time : %s\nline : %d\n\
                 date : %s\nfile : %d\n",\
                 __TIME__ ,__LINE__ ,__DATE__ ,__FILE__ )
unsigned char i = 0;

int main()
{
   DEBUG;
   system(&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值