news 2026/9/2 21:56:51

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/9/1 5:06:21

GLM-TTS能否支持太空站通讯?失重环境下语音特征调整

GLM-TTS 能否支撑太空站通讯&#xff1f;失重环境下的语音适应性探析 在国际空间站漂浮的清晨&#xff0c;一名宇航员正准备执行舱外任务。耳机里传来一句熟悉的声音&#xff1a;“氧气压力正常&#xff0c;轨道参数稳定。”——那声音像极了他在地球上的搭档&#xff0c;语气平…

作者头像 李华
网站建设 2026/9/2 11:53:39

pymodbus实现Modbus RTU广播通信的可行性分析

pymodbus 能否真正实现 Modbus RTU 广播&#xff1f;一次深入到底的实战验证在工业自动化现场&#xff0c;你有没有遇到过这样的场景&#xff1a;需要给十几个甚至几十个从站设备同时下发一个参数更新指令——比如统一修改采样周期、重置报警标志或同步系统时间。如果逐个轮询&…

作者头像 李华
网站建设 2026/9/2 3:55:37

如何用Shell脚本自动化启动GLM-TTS服务并监控运行状态

如何用Shell脚本自动化启动GLM-TTS服务并监控运行状态 在语音合成技术日益普及的今天&#xff0c;越来越多的企业开始部署零样本语音克隆与情感化TTS系统&#xff0c;用于智能客服、虚拟主播、有声内容生成等场景。基于开源项目 zai-org/GLM-TTS 构建的 GLM-TTS 服务&#xff…

作者头像 李华
网站建设 2026/9/2 20:35:19

语音合成中的连读变调处理:提升中文自然度的关键优化

语音合成中的连读变调处理&#xff1a;提升中文自然度的关键优化 在智能音箱念出“一个苹果”的时候&#xff0c;你有没有觉得那个“一”听起来怪怪的&#xff1f;明明应该是阳平&#xff08;第二声&#xff09;&#xff0c;却常常被读成生硬的阴平&#xff08;第一声&#xf…

作者头像 李华
网站建设 2026/8/31 17:14:10

图解说明:如何为AVD安装Intel HAXM(新手友好)

手把手教你搞定Intel HAXM&#xff1a;告别“AVD启动失败”的开发卡点 你有没有遇到过这样的场景&#xff1f; 刚配好Android Studio&#xff0c;信心满满地创建了一个AVD准备调试应用&#xff0c;结果一点击运行——弹出红字警告&#xff1a; “Intel HAXM is required to …

作者头像 李华
网站建设 2026/8/28 2:33:23

TRO 基于光纤触觉传感的多指欠驱动机器人手及其远程操控研究

针对危险或受限环境下远程操控对机器人手高精度力 / 触觉反馈与轻量化设计的需求&#xff0c;提出一种集成光纤布拉格光栅&#xff08;FBGs&#xff09;的传感 - 驱动一体化多指欠驱动机器人手。该机器人手采用 3 指结构&#xff0c;每指通过嵌入 3 个 FBGs 的光纤肌腱实现动力…

作者头像 李华