使用单个带有包含对类似函数的宏的包含防护的define语句?

phi*_*yoo 1 c c-preprocessor

有没有一种方法可以对此标头仅使用一个define语句,而无需将类似于函数的宏更改为函数?

my.h 文件:

#ifndef MY_H
#define MY_H
#define MIN(x, y) ((x) > (y) ? (y) : (x))
#endif
Run Code Online (Sandbox Code Playgroud)

例如,我可以对常量执行以下操作:

pi.h 文件:

#ifndef PI
#define PI 3.14159
#endif
Run Code Online (Sandbox Code Playgroud)

我也意识到以下帖子中关于使用类似函数的宏的警告:https : //stackoverflow.com/a/15575690/4803039

我只想看看是否有更优化/重构的方法。#define当标头主体仅包含一个#define语句本身时,似乎似乎很奇怪地包含一个定义标头主体其余部分的附加语句。

Dan*_*anh 5

这就是你想要的:

#ifndef MIN
#define MIN(x, y) ((x) > (y) ? (y) : (x))
#endif
Run Code Online (Sandbox Code Playgroud)