gpt4 book ai didi

c - 如何修复这些 MIN、MAX 宏?

转载 作者:行者123 更新时间:2023-11-30 19:52:23 24 4
gpt4 key购买 nike

我收到以下警告:

warning: left-hand operand of comma expression has no effect

宏定义如下。我正在 Linux 上使用 GCC (4.4.3) 进行编译。这是C代码。

#define MY_MAX(a,b) \
({ __typeof__ (a) _a = (a); \
__typeof__ (b) _b = (b); \
_a > _b ? _a : _b; })

#define MY_MIN(a,b) \
({ __typeof__ (a) _a = (a); \
__typeof__ (b) _b = (b); \
_a < _b ? _a : _b; })

如何修复它们以消除警告?

[[更新]]

实际上,我找到了警告的原因。与宏本身无关。这是因为我试图找到两个数字的最小值,其中一个是名为 MAXIMUM_ARRAYSIZE 的#def。它被定义为:

#define MAXIMUM_ARRAYSIZE (sizeof(size_t)==2,16384,1073741824)

这是一个非常奇怪的宏定义。

最佳答案

错误不在您的宏定义中。

您需要向我们展示 MIN/MAX 宏的调用代码。听起来您要么尝试错误地使用 MIN/MAX 的结果,要么您传递了一个 token (ab) 包含意外的逗号。

关于c - 如何修复这些 MIN、MAX 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8770612/

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