千家信息网

C语言预编译怎么使用

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这篇文章主要介绍"C语言预编译怎么使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C语言预编译怎么使用"文章能帮助大家解决问题。1、内置符号这些符号都可以直
千家信息网最后更新 2024年11月24日C语言预编译怎么使用

这篇文章主要介绍"C语言预编译怎么使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C语言预编译怎么使用"文章能帮助大家解决问题。

1、内置符号

这些符号都可以直接使用:

__FILE__ 点c文件全名
__LINE__ 当前行号
__DATE__ 编译日期
__TIME__ 编译时间

举例:

#includeint main() {        printf("文件全名:%s\n", __FILE__);        printf("当前运行行号:%d\n", __LINE__);        printf("编译日期:%s\n", __DATE__);        printf("编译时间:%s\n", __TIME__);        return 0;}

效果:

2、自定义符号

#define 名 值

不带分号。预编译阶段,所有名字会被值替换。

举例:给printf取个别名。

#include#define say printfint main() {        say("你好,世界!\n");        return 0;}

效果:

举例:自定义一个死循环符号。

#include#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#define say(s)printf(s)int main() {        say("你好,世界!\n");        return 0;}

效果:

替换逻辑:递归。

看参数有没有define,有就套娃。

直到没有,替换自己。

字符串内部的符号会被忽略。

4、条件编译

可以用#define定义一个符号,代表是否要执行。

#include#define __DEBUG__ 1int main() {        if (__DEBUG__) {                printf("调试模式开启\n");        }        else {                printf("调试模式关闭\n");        }        return 0;}

效果:

同时,可以让这段代码直接跳过编译。

#include#define __DEBUG__ 1int main() {#if __DEBUG__        printf("调试模式开启\n");#endif        return 0;}

这种写法也有配套的选择分支。

#include#define __DEBUG__ 0#define __WARN__ 1int main() {#if __DEBUG__        printf("调试模式\n");#elif __WARN__        printf("警告模式\n");#else        printf("正常模式\n");#endif        return 0;}

效果:

关于"C语言预编译怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0