栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

利用预编译参数删除和添加功能(C/C++)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

利用预编译参数删除和添加功能(C/C++)

目录

定义

实例

无编译参数

带编译参数

总结


定义

预编译又称为预处理,是做些代码文本的替换工作。

处理#开头的指令,比如拷贝#include包含的文件代码,#define宏定义的替换,条件编译等

就是为编译做的预备工作的阶段

主要处理#开始的预编译指令

实例

在开发的过程,可能会遇到这样的情况,就是不同版本可能功能会有删除和添加,如果在代码做编写逻辑判断这样是可以满足要求的,但是这样做会出现不必要的判断。

因此我们可以利用预编译宏定义来完成,删除或者添加功能。

代码如下:

#include 
int main(int argc,char**args){

#ifndef TEST_FUN
	printf("hello new function!rn");
#endif

	printf("hello world!rn");
	return 0;
}

我们可以看到在代码中使用宏#ifndef ... #define....#endif 这个语句。

无编译参数

定义了TEST_FUN这个宏,如果在编译的时候不添加任何参数,表示默认使用hello new function 功能。看看效果

编译如下:

gcc main.c -o main

运行结果如下:

可以看到默认使用了新功能。

带编译参数

编译如下使用-DTEST_FUN:

gcc main.c -o main -DTEST_FUN

运行结果如下:

hello world!

总结

该方案对于代码功能相对集中,并且功能分支不多的项目是一个不错的方案。减少不必要的判断,但是无法动态的添加功能。比如:日志功能使用该方式,那么就不能通过设置变量的方式来修改日志是否输出。具体的使用需要个人根据自己的项目来进行使用。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948244.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号