gpt4 book ai didi

c - 为什么只定义一个尚未定义的宏?

转载 作者:太空狗 更新时间:2023-10-29 16:14:57 26 4
gpt4 key购买 nike

在我们的所有 C 代码库中,我看到每个宏都按以下方式定义:

#ifndef BEEPTRIM_PITCH_RATE_DEGPS
#define BEEPTRIM_PITCH_RATE_DEGPS 0.2f
#endif

#ifndef BEEPTRIM_ROLL_RATE_DEGPS
#define BEEPTRIM_ROLL_RATE_DEGPS 0.2f
#endif

#ifndef FORCETRIMRELEASE_HOLD_TIME_MS
#define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f
#endif

#ifndef TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS
#define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f
#endif

进行这些定义检查而不是仅仅定义宏的基本原理是什么?

#define BEEPTRIM_PITCH_RATE_DEGPS                   0.2f
#define BEEPTRIM_ROLL_RATE_DEGPS 0.2f
#define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f
#define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f

我在网络上的任何地方都找不到对这种做法的解释。

最佳答案

这允许您在编译时覆盖宏:

gcc -DMACRONAME=value

头文件中的定义用作默认值。

关于c - 为什么只定义一个尚未定义的宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32398612/

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