news 2026/4/3 4:55:50

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/3/24 21:23:48

如何用Objective-C开发macOS端GLM-TTS应用程序

如何用Objective-C开发macOS端GLM-TTS应用程序 在内容创作与语音交互日益智能化的今天&#xff0c;越来越多开发者希望将前沿AI语音技术本地化部署到macOS应用中。尤其是像GLM-TTS这类支持零样本语音克隆的模型&#xff0c;仅需几秒参考音频就能复刻音色&#xff0c;为虚拟主播…

作者头像 李华
网站建设 2026/3/20 16:41:06

AJAX从入门到精通系列保姆级教程,带你嗨翻天

一&#xff1a;什么叫AJAX1&#xff1a;基本概念AJAX 是异步的 JavaScript和XML(Asynchronous JavaScript And XML)。简单来讲就是使用XMLHttpRequest 对象与服务器通信。它可以使用 JSON&#xff0c;XML&#xff0c;HTML 和 text 文本等格式发送和接收数据。AJAX 最吸引人的就…

作者头像 李华
网站建设 2026/3/27 5:20:31

GLM-TTS能否支持多人对话生成?角色切换与声线区分实现

GLM-TTS能否支持多人对话生成&#xff1f;角色切换与声线区分实现 在影视配音、有声书制作甚至虚拟社交场景中&#xff0c;一个越来越迫切的需求浮出水面&#xff1a;如何让AI合成的语音不再只是“一个人在念稿”&#xff0c;而是真正呈现出多个角色之间自然交替的对话感&#…

作者头像 李华
网站建设 2026/3/31 3:21:39

LTR390-UV紫外线传感器原理图设计,已量产(光线传感器)

目录 1、核心器件的选型逻辑 2、电源系统:稳定 + 低噪是核心 3、传感器与 MCU 的通信链路 4、调试里的几个注意点 最近做了款面向便携场景的紫外线检测电路,核心用了 CS32L010 低功耗 MCU 和 LTR390-UV 传感器,正好借着这个原理图聊聊设计里的核心逻辑和细节考量。 原理…

作者头像 李华
网站建设 2026/3/31 16:22:09

GLM-TTS与Cilium网络策略集成:精细化网络安全管控

GLM-TTS与Cilium网络策略集成&#xff1a;精细化网络安全管控 在当今AI服务快速落地的背景下&#xff0c;语音合成系统正从实验室走向高并发、多租户的生产环境。以GLM-TTS为代表的零样本语音克隆模型&#xff0c;凭借其无需训练即可复现音色的能力&#xff0c;在智能客服、有声…

作者头像 李华
网站建设 2026/3/28 8:01:14

如何用VB.NET开发Windows桌面GLM-TTS控制程序

如何用VB.NET开发Windows桌面GLM-TTS控制程序 在智能语音内容创作日益普及的今天&#xff0c;越来越多的行业开始尝试将个性化语音合成技术融入工作流程。无论是教育课件配音、短视频旁白生成&#xff0c;还是客服系统的定制播报&#xff0c;传统TTS方案往往受限于音色单一、配…

作者头像 李华