news 2026/6/9 2:07:08

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/9 0:55:11

使用Ansible自动化部署GLM-TTS到多台GPU服务器集群

使用Ansible自动化部署GLM-TTS到多台GPU服务器集群 在语音合成平台日益复杂的今天&#xff0c;如何快速、稳定地将大模型服务部署到多台GPU服务器上&#xff0c;已经成为AI工程化落地的关键瓶颈。尤其是在需要支持高并发语音生成的场景下——比如智能客服引擎、AI配音工厂或虚拟…

作者头像 李华
网站建设 2026/6/9 1:11:59

如何用Java调用GLM-TTS服务实现企业级应用集成

如何用 Java 调用 GLM-TTS 服务实现企业级应用集成 在智能客服自动播报、个性化语音通知、有声内容批量生成等场景中&#xff0c;企业对“像真人一样说话”的语音合成能力需求正快速增长。传统的TTS系统往往音色单一、缺乏情感、难以定制&#xff0c;而新兴的GLM-TTS模型则带来…

作者头像 李华
网站建设 2026/6/9 1:22:36

RS232接口引脚定义与时序关系:快速理解通信流程

RS232通信从引脚到时序&#xff1a;工程师必懂的串口底层逻辑你有没有遇到过这样的场景&#xff1f;调试板子时串口输出乱码&#xff0c;换根线就好了&#xff1b;接了RS232却死活不通信&#xff0c;最后发现是TxD接到了TxD&#xff1b;远距离传输数据断断续续&#xff0c;降个…

作者头像 李华
网站建设 2026/6/9 0:37:38

利用QListView打造仿音乐播放列表的详细教程

用QListView打造专业级音乐播放列表&#xff1a;从零开始的实战指南你有没有想过&#xff0c;为什么像网易云音乐、Spotify 这样的桌面客户端&#xff0c;即使加载上万首歌曲也能流畅滚动&#xff1f;它们的列表不仅美观&#xff0c;还支持封面显示、双行文本、实时状态反馈………

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

GLM-TTS与Argo CD持续交付集成:自动化版本更新流程

GLM-TTS与Argo CD持续交付集成&#xff1a;自动化版本更新流程 在语音合成技术快速演进的今天&#xff0c;企业对个性化、高保真语音生成的需求日益增长。GLM-TTS 作为支持零样本语音克隆的大模型 TTS 系统&#xff0c;正被广泛应用于虚拟主播、智能客服和有声内容生产等场景。…

作者头像 李华
网站建设 2026/6/5 4:11:02

使用Spinnaker实现GLM-TTS蓝绿部署降低上线风险

使用Spinnaker实现GLM-TTS蓝绿部署降低上线风险 在智能语音服务日益普及的今天&#xff0c;一个细微的模型更新失误&#xff0c;可能就会导致成千上万用户的听觉体验崩塌——合成语音突然失真、情感错乱&#xff0c;甚至说出完全不符合语境的内容。对于依赖高质量语音输出的数字…

作者头像 李华