C语言预编译怎么使用
这篇文章主要介绍“C语言预编译怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言预编译怎么使用”文章能帮助大家解决问题。
1、内置符号
这些符号都可以直接使用:
__FILE__ 点c文件全名
__LINE__ 当前行号
__DATE__ 编译日期
__TIME__ 编译时间
举例:
#include<stdio.h>int main() {printf("文件全名:%s\n", __FILE__);printf("当前运行行号:%d\n", __LINE__);printf("编译日期:%s\n", __DATE__);printf("编译时间:%s\n", __TIME__);return 0;}
效果:
2、自定义符号
#define 名 值
不带分号。预编译阶段,所有名字会被值替换。
举例:给printf取个别名。
#include<stdio.h>#define say printfint main() {say("你好,世界!\n");return 0;}
效果:
举例:自定义一个死循环符号。
#include<stdio.h>#define loop while(1)int main() {int i = 0;loop{if (i > 1000) {break;}else {printf("你好,世界!\t%d\n",i);i++;}}return 0;}
效果:
3、自定义宏
和自定义符合差不多。
相当于函数,只不过在预编译的阶段就会执行。
然后替换掉。
#define 名 ( 参数列表 ) 表达式
举例:输出字符串。
#include<stdio.h>#define say(s)printf(s)int main() {say("你好,世界!\n");return 0;}
效果:
替换逻辑:递归。
看参数有没有define,有就套娃。
直到没有,替换自己。
字符串内部的符号会被忽略。
4、条件编译
可以用#define定义一个符号,代表是否要执行。
#include<stdio.h>#define __DEBUG__ 1int main() {if (__DEBUG__) {printf("调试模式开启\n");}else {printf("调试模式关闭\n");}return 0;}
效果:
同时,可以让这段代码直接跳过编译。
#include<stdio.h>#define __DEBUG__ 1int main() {#if __DEBUG__printf("调试模式开启\n");#endifreturn 0;}
这种写法也有配套的选择分支。
#include<stdio.h>#define __DEBUG__ 0#define __WARN__ 1int main() {#if __DEBUG__printf("调试模式\n");#elif __WARN__printf("警告模式\n");#elseprintf("正常模式\n");#endifreturn 0;}
效果:
关于“C语言预编译怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341