C宏定义可以引用其他宏吗?

标签 c c-preprocessor

我想弄清楚的是,如果有这样的东西(用 C 编写):

#define FOO 15
#define BAR 23
#define MEH (FOO / BAR)

允许吗?我希望预处理器替换

的每个实例
MEH

(15 / 23)

但我不确定这是否可行。当然,如果预处理器只检查一次代码,那么我认为它不会按照我想要的方式运行。

我找到了几个类似的例子,但都太复杂了,我无法理解。如果有人可以帮助我解决这个简单的问题,我将永远感激不尽!

最佳答案

简短的回答是。您可以像这样嵌套定义和宏 - 只要它不是递归的,就可以嵌套任意多的级别。

关于C宏定义可以引用其他宏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7972785/

相关文章:

c - C 中自定义 getln 函数缺少原型(prototype)错误消息的解释

#define 指令中的 C 类型转换

c++ - 如何在宏中获取当前命名空间的字符串

c - 为什么 #line 指令没有在 clang 的 false #if 中处理?

c - 可以通过 C 宏将地址赋值转换为函数参数吗?

c++ - 我们可以编写一个不使用 C++ 预处理器的可移植包含防护吗?

c++ - 为 C 或 C++ 定义的通用预处理器?

c - 函数 memcpy() 正在关闭程序

c - 1 个具有 2 个不同定义的结构(或动态结构)

c - C中的char string [LENGTH]和char * string [LEN]有什么区别