条件编译

1、#if

        ● 格式:

#include <stdio.h>

using namespace std;

int main() {

//用法1
//条件编译中要求判断条件必须都为“整形常量表达式”,不可以为变量,并且结果必须为整型
#if _WIN32
	printf("这是windows系统。\n");
#elif _linux_
	printf("这是linux系统。\n");
#else
	print("未知系统!\n");
#endif

//用法2
#if _WIN32
	printf("这是windows系统2。\n");
#else
	print("未知系统!\n");
#endif

	return 0;
}

2、#ifdef 

#include <stdio.h>

using namespace std;

int main() {

// #else 可以删除
// 意思是如果当前宏已被定义过,则对第一程序段进行编译,否则对第二程序段进行编译
// 当以 Debug 模式编译程序时,宏 _DEBUG 会被定义,预处器会保留第 5 行代码,删除第 7 行代码。反之会删除第 5 行,保留第 7 行。
#ifdef _DEBUG
	printf("正在使用 Debug 模式编译程序...\n");
#else
	printf("正在使用 Release 模式编译程序...\n");
#endif

	return 0;
}

3、#ifnder

#include <stdio.h>

using namespace std;

int main() {

// #else 可以删除
// 意思是如果当前宏未被定义过,则对第一程序段进行编译,否则对第二程序段进行编译
// 与 #ifdef 相反
#ifndef _DEBUG
	printf("正在使用 Debug 模式编译程序...\n");
#else
	printf("正在使用 Release 模式编译程序...\n");
#endif

	return 0;
}

4、三种区别

        ● #if 后面跟的是 " 整型常量表达式 ";

        ● #ifder 和 #ifndef 后面跟的只能是一个宏名,不可以是其他的; 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值