C语言预编译怎么使用

发布时间:2022-05-05 09:34:41 作者:iii
来源:亿速云 阅读:109

这篇文章主要介绍“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;
}

效果:

C语言预编译怎么使用

2、自定义符号

#define 名 值

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

举例:给printf取个别名。

#include<stdio.h>
#define say printf
int main() {
	say("你好,世界!\n");
	return 0;
}

效果:

C语言预编译怎么使用

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

#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;
}

效果:

C语言预编译怎么使用

3、自定义宏

和自定义符合差不多。

相当于函数,只不过在预编译的阶段就会执行。

然后替换掉。

#define 名 ( 参数列表 ) 表达式

举例:输出字符串。

#include<stdio.h>
#define say(s)printf(s)
int main() {
	say("你好,世界!\n");
	return 0;
}

效果:

C语言预编译怎么使用

替换逻辑:递归。

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

直到没有,替换自己。

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

4、条件编译

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

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

效果:

C语言预编译怎么使用

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

#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语言预编译怎么使用

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

推荐阅读:
  1. #line预编译字分析
  2. 深入理解C语言的预编译指令之 include

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:JS怎么实现导出Excel和CSV文件

下一篇:python中怎么使用Keras进行回归运算

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》