如何标记 statement expression ,即
({struct Value * t = expr; set(t,val); t;})
可能未使用,即
__attribute__((unused))
它是自动生成的代码,有副作用。在生成时推断结果是否未使用并在 (void)0
中交换 t
会显着增加复杂性。最好的解决方案是将其标记为可能未使用,否则我将不得不执行 -Wno-unused-value
。
最佳答案
是的,如果您在宏或类似的地方使用这些东西,这可能会非常令人不安。我通常在末尾使用完全无用的赋值来消除此类警告:
t = t;
这有两个影响:编译器现在认为 t
被使用,而且它的结果是一个右值,所以没有人可以尝试获取整个 ({ })
表达式。
关于c - 将语句表达式标记为可能未使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33925618/