news 2026/6/10 19:38:48

C语言 6——编译预处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言 6——编译预处理

宏定义和调用

无参数的宏定义(宏常量)

如果在程序中大量使用到了某个值,那么为了方便管理,我们可以将其定义为:const int NUM = 100;但如果我们使用NUM定义一个数组,在不支持C99标准的编译器上是不支持的,因为NUM不是一个编译期常量,如果想到了一个编译器常量,那么可以使用:#define NUM 100

在编译预处理时,将程序中在该语句以后出现的所有的NUM都用100代替。这种方法使用户能以一个简单的名字代替一个长的字符串,在预编译时将宏名替换成字符串的过程称为“宏展开”。宏定义,只在宏定义的文件中起作用

宏名一般大写,以便于与变量区分

宏定义可以是常数、表达式等

宏定义不做语法检查,只有在编译被宏展开后的源程序才会报错

宏定义不是C语言,不在行末加分号

宏名有效范围从定义到本源文件结束

可以用#undef 命令种植宏定义的作用域

在宏定义中,可以引用已定义的宏名

NUM不能被赋值

带参数的宏定义(宏函数)

在项目中,经常把一些短小而又频繁使用的函数写成宏函数。宏通过使用参数,可以创建外形和作用都与函数类似的类函数宏。宏的参数也用圆括号括起来

eg:#define SUM(x,y) (x + y) (带参数的宏定义一般会加上括号,防止运算的优先级别导致代码出错,因为宏定义展开是将内容原封不动的替换)

文件包含处理

文件包含处理

“文件包含处理”是指一个源文件可以将另外一个文件的全部内容包含进来。C语言提供了#include 命令用来实现“文件包含”的操作

#include<>和#include""区别

“” 表示系统先在file1.c所在的当前目录找file1.h,如果找不到,再按系统指定的目录检索

<>表示系统直接按系统指定的目录检索

注意:

1.#include<>常用于包含库函数的头文件

2.#include""常用于包含自定义的头文件

3.理论上#include 可以包含任意格式的文件(.c .h等),但一般用于头文件的包含

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 12:38:52

Realtek HD Audio驱动安装问题解析:全面讲解

Realtek声卡没声音&#xff1f;一文搞懂驱动安装背后的硬核原理你有没有遇到过这种情况&#xff1a;电脑重装系统后&#xff0c;突然发现音箱“哑火”了&#xff0c;设备管理器里音频设备要么不显示&#xff0c;要么顶着个黄色感叹号&#xff1b;或者明明插上了耳机&#xff0c…

作者头像 李华
网站建设 2026/6/10 13:19:45

使用OpenShift平台部署GLM-TTS实现企业级容器编排

使用OpenShift平台部署GLM-TTS实现企业级容器编排 在当前智能语音应用快速渗透客服、教育、媒体与企业服务的背景下&#xff0c;如何高效、稳定地对外提供高质量文本到语音&#xff08;TTS&#xff09;能力&#xff0c;已成为许多技术团队面临的核心挑战。传统的单机部署模式不…

作者头像 李华
网站建设 2026/6/9 15:46:02

GLM-TTS能否用于电话机器人?与SIP协议集成的技术难点

GLM-TTS与SIP协议集成&#xff1a;构建高拟真电话机器人的技术实践 在智能客服系统不断进化的今天&#xff0c;用户对电话机器人的期待早已超越“能听会说”的基础功能。越来越多的企业希望机器人不仅能准确传达信息&#xff0c;还能以自然、富有情感的声音提供接近真人坐席的服…

作者头像 李华
网站建设 2026/6/10 14:57:08

GLM-TTS流式输出技术原理与实时语音合成场景适配分析

GLM-TTS流式输出技术原理与实时语音合成场景适配分析 在智能客服、虚拟主播和有声读物等交互密集型应用中&#xff0c;用户早已不再满足于“能说话”的AI语音。他们期待的是即时响应、个性鲜明、情感自然的类人表达——就像对面坐着一位随时准备回应你、语气恰到好处的真人。 然…

作者头像 李华
网站建设 2026/6/7 15:26:31

基于GLM-TTS的语音广告生成平台商业模型设计与盈利预测

基于GLM-TTS的语音广告生成平台商业模型设计与盈利预测 在数字营销内容爆炸式增长的今天&#xff0c;品牌对个性化、高效率、低成本的声音表达需求正以前所未有的速度攀升。传统语音广告制作依赖专业配音演员、录音棚和后期剪辑&#xff0c;不仅周期长、成本高&#xff0c;还难…

作者头像 李华
网站建设 2026/6/10 13:19:29

USBlyzer批量抓包技巧:高效处理长周期数据流方法

USBlyzer批量抓包实战&#xff1a;如何稳抓长周期数据流中的“关键帧”你有没有遇到过这种情况&#xff1f;设备在实验室跑得好好的&#xff0c;一到现场就偶发通信中断&#xff1b;或者某个USB传感器每隔几小时丢一次数据包&#xff0c;但手动复现就是抓不到问题瞬间。这时候&…

作者头像 李华