news 2026/6/13 2:06:06

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/12 18:43:23

GLM-TTS与DVWA安全测试平台对比:AI语音系统安全防护思考

GLM-TTS与DVWA安全测试平台对比&#xff1a;AI语音系统安全防护思考 在智能语音助手、虚拟主播和自动化客服日益普及的今天&#xff0c;用户对“像人一样说话”的AI系统期待越来越高。GLM-TTS这类支持零样本音色克隆的文本到语音&#xff08;TTS&#xff09;模型&#xff0c;正…

作者头像 李华
网站建设 2026/5/30 13:48:48

语音合成中的语义强调实现:通过音高变化突出关键词

语音合成中的语义强调实现&#xff1a;通过音高变化突出关键词 在教育讲解、有声书朗读或客服播报中&#xff0c;你是否曾遇到过这样的问题——机器生成的语音虽然清晰自然&#xff0c;但所有内容都“平铺直叙”&#xff0c;重点信息毫无起伏&#xff0c;听者难以抓住关键&…

作者头像 李华
网站建设 2026/6/10 2:22:50

如何用Scala语言构建类型安全的GLM-TTS客户端

如何用 Scala 构建类型安全的 GLM-TTS 客户端 在语音合成技术加速落地的今天&#xff0c;越来越多的应用场景——从虚拟主播到有声读物生成、从智能客服到方言保护——都对个性化、高保真语音输出提出了严苛要求。GLM-TTS 作为一款支持零样本语音克隆、情感迁移和音素级控制的大…

作者头像 李华
网站建设 2026/6/12 3:24:13

语音合成中的呼吸音模拟:增加拟人化自然感细节

语音合成中的呼吸音模拟&#xff1a;增加拟人化自然感细节 在虚拟主播深情讲述一个动人故事时&#xff0c;你是否曾被那句尾轻柔的喘息所打动&#xff1f;当游戏角色在激烈战斗后断续说出“我……还能继续”&#xff0c;那种真实的疲惫感从何而来&#xff1f;这些细节的背后&am…

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

全面讲解Keil5软件下载与注册激活流程

手把手带你搞定Keil5安装与激活&#xff1a;从零开始的嵌入式开发第一步 你是不是也曾在准备开启STM32开发之旅时&#xff0c;卡在了 Keil5怎么下载&#xff1f;怎么注册&#xff1f;为什么编译到一半报错“code size limited to 32KB”&#xff1f; 这些看似简单却让人抓狂…

作者头像 李华
网站建设 2026/6/8 21:59:12

语音克隆也能做SaaS?结合GPU资源售卖搭建TTS服务平台

语音克隆也能做SaaS&#xff1f;结合GPU资源售卖搭建TTS服务平台 在AIGC内容爆炸的今天&#xff0c;个性化语音正在从“可有可无”的附加功能&#xff0c;演变为数字内容的核心竞争力。无论是虚拟主播的一颦一笑&#xff0c;还是智能客服的语气起伏&#xff0c;用户对“像人一样…

作者头像 李华