gpt4 book ai didi

c - 不应使用 MISRA C 2012 规则 20.5 #undef

转载 作者:行者123 更新时间:2023-12-01 15:58:53 24 4
gpt4 key购买 nike

我正在努力摆脱对规则 20.5 的违反

示例代码:

#define VAL 2
int32_t func(void)
{
int32_t n1 = VAL;
#undef VAL
#define VAL(x) (x*x)
return VAL(n1);
}

在不更改任何其他行的情况下,是否可以解决 undef 问题?

最佳答案

不,没有解决方法。代码写得不好,没有理由像这样使用预处理器。这只是混淆 - 摆脱它。请改用普通变量。

几乎不存在可以合理使用#undef 的场景。我能想到的唯一有效情况是“X 宏”,即使是那些也应该稀疏地使用。

关于c - 不应使用 MISRA C 2012 规则 20.5 #undef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47769783/

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