C/C++中include、宏定义、条件编译

本文详细介绍了C/C++中的预处理指令,包括文件包含的#include< >与#include ""的区别,无参数和有参数的宏定义,以及条件编译的概念和作用。同时提到了预定义宏的使用,如__FILE__, __FUNCTION__, __LINE__, __DATE__和__TIME__。" 22691211,1270827,Windows异步设备I/O详解,"['Windows编程', '内核对象', '异步处理', '设备驱动']
摘要由CSDN通过智能技术生成

C/C++中的预处理主要包含四种:文件包含、宏定义、条件编译、一些特殊的预定义宏

1.文件包含

“文件包含处理”是指一个源文件可以将另外一个文件的全部内容包含进来。C语言提供了#include命令用来实现“文件包含”的操作

#include< > 与 #include ""的区别:

(1)"" 表示系统在.c文件所在目录去搜索包含的.h文件,比如我们的要写的范例,在main.c所在的当前目录找test1.h,如果找不到,按系统指定的目录检索。#include ""常用于包含自定义的头文件。如果用#include<>也能找到,但增加了编译时间

(2)< > 表示系统直接按系统指定的目录检索。#include <>常用于包含库函数的头文件,如果用#include""也能找到,但增加了编译时间

注意:

(1)不按常规使用也能找到,但会让编译效率下降,所以应该按照上述建议使用

(2)理论上#include可以包含任意格式的文件(.c .h等) ,但我们一般用于头文件的包含。

2.宏定义

(1)无参数的宏

格式:#define 宏名 一段符号

这里所说的一段符号,可以是数字,可以是字符,可以是字符串,可以是表达式,也可以为空,等等,具体是什么要根据你实际需求来确定。

示例:#define PI 3.141926

在编译预处理时,将程序中在该语句以后出现的所有的PI都用3.1415926代替。这种方法使用户能以一个简单的名字代替一段长的符号,

 

《1》在预编译时将宏名替换成一段符号的过程称为“宏展开”

示例:

#include <stdio.h>


#define	PI  3.14 // 3.141926
#define TEACHER  "Martin老师"

void test1_1()
{
	// 圆面积公式,面积 = 圆周率*半径的平方
	double radius = 10.0;
	double area = PI * radius * radius;
	printf("test1_1 %s教我算圆面积,圆半径 = %lf, 圆面积 = %lf\n",
		TEACHER, radius, area);
}
//宏定义的展开后的结果
void test1_2()
{
	// 圆面积公式,面积 = 圆周率*半径的平方
	double radius = 10.0;
	d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值