C语言预编译怎么使用
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍"C语言预编译怎么使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C语言预编译怎么使用"文章能帮助大家解决问题。1、内置符号这些符号都可以直
千家信息网最后更新 2025年01月18日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语言预编译怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
编译
效果
模式
符号
语言
世界
你好
知识
全名
参数
字符
字符串
文件
日期
时间
行业
阶段
行号
不同
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
程序员的网络安全方面的工作
csmaz是啥数据库
网络技术的劣势
陕西英德思网络技术有限公司
服务器如何开放安全组
计算机网络技术能学前端吗
在数据库技术领域中属于dbms
网络安全演练app
菏泽国际网络技术有限公司
证券软件开发费用
魔兽世界转服务器多钱
云函数需要服务器吗
连云港网络服务器机柜直接供货
全椒常见软件开发技术问答知识
怎样应对网络安全挑战
二手房软件开发
工厂里面的软件开发
信息网络安全三大时代
虹口区创新软件开发定制价格
eas基础数据库
总工会网络安全宣传简报
数据库长连接总查询超时
数据库应用技术书籍
网管软件开发平台
战地1线上服务器
面试java问前端和数据库
数据库操作重复
咸阳c 软件开发
eas基础数据库
抹抹读书软件开发