gpt4 book ai didi

c - 头文件中使用的宏语句,但在其外部定义

转载 作者:太空宇宙 更新时间:2023-11-04 02:31:54 25 4
gpt4 key购买 nike

我正在为微 Controller 编写一些库,并且我已根据它们的功能将这些库分成几个部分。例如,我有 adc.h 来配置模拟输入测量,uart.hi2c.h 用于数字通信等。

其中一些库需要有关 CPU 速度的信息,因此我定义了一个宏语句

#define FCY 30000000UL

在所有需要这条信息的头文件中。我的问题是,我能否以某种方式对这些头文件进行编程,使 FCY 宏仅在头文件中“声明”,但在其外部定义,例如在 main.c 文件中?问题是,当我改变 CPU 速度(频率)时,我必须更新所有这些 FCY 宏语句,这很容易出错。

最佳答案

我建议提供一个单独的头文件,例如 hardware_constants.h 用于需要在多个 .h 文件或 c-文件。在需要的地方包含 hardware_constants.h,而不是多次(重新)定义同一事物。

您甚至可以让调用编译器的人提供这些定义,例如在命令行、生成文件或 IDE 的项目设置中。

一些 IDE 提供自动包含在每个翻译单元之前的 header 。例如,在 XCode 项目中,您可以将常见的 #define ... 语句放在名为 PrefixHeader.pch 的文件中,这些定义将在每个源中隐式可用代码文件。

关于c - 头文件中使用的宏语句,但在其外部定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42182034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com