这篇文章主要介绍“C语言预编译怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言预编译怎么使用”文章能帮助大家解决问题。
这些符号都可以直接使用:
__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; }
效果:
#define 名 值
不带分号。预编译阶段,所有名字会被值替换。
举例:给printf取个别名。
#include<stdio.h> #define say printf int 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; }
效果:
和自定义符合差不多。
相当于函数,只不过在预编译的阶段就会执行。
然后替换掉。
#define 名 ( 参数列表 ) 表达式
举例:输出字符串。
#include<stdio.h> #define say(s)printf(s) int main() { say("你好,世界!\n"); return 0; }
效果:
替换逻辑:递归。
看参数有没有define,有就套娃。
直到没有,替换自己。
字符串内部的符号会被忽略。
可以用#define定义一个符号,代表是否要执行。
#include<stdio.h> #define __DEBUG__ 1 int main() { if (__DEBUG__) { printf("调试模式开启\n"); } else { printf("调试模式关闭\n"); } return 0; }
效果:
同时,可以让这段代码直接跳过编译。
#include<stdio.h> #define __DEBUG__ 1 int main() { #if __DEBUG__ printf("调试模式开启\n"); #endif return 0; }
这种写法也有配套的选择分支。
#include<stdio.h> #define __DEBUG__ 0 #define __WARN__ 1 int main() { #if __DEBUG__ printf("调试模式\n"); #elif __WARN__ printf("警告模式\n"); #else printf("正常模式\n"); #endif return 0; }
效果:
关于“C语言预编译怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。