c – 对于三元 *** 作,“警告: *** 作……可能未定义” – 如果 else阻止

c – 对于三元 *** 作,“警告: *** 作……可能未定义” – 如果 else阻止,第1张

概述参见英文答案 > Undefined behavior and sequence points                                    5个 这是我的代码: int main() { static int test = 0; const int anotherInt = 1; test = anotherInt > test ? test++ 参见英文答案 > Undefined behavior and sequence points                                    5个
这是我的代码:

int main() {    static int test = 0;    const int anotherInt = 1;    test = anotherInt > test ? test++ : 0;    if (anotherInt > test)        test++;    else        test = 0;    return 0;}

这是我构建它时产生的警告

../main.cpp:15:40: warning: operation on ‘test’ may be undefined [-Wsequence-point]  test=     anotherInt>test ? test++ : 0;                                        ^

为什么C会对三元 *** 作发出警告,而不是常规if..else语句?

解决方法 他们并不等同.请注意,在三元运算符表达式中,您将结果分配给test

将if条件更改为:

if(anotherInt > test)    test = test++;  // undefined!

您可能也会在此处看到相同的警告.

总结

以上是内存溢出为你收集整理的c – 对于三元 *** 作,“警告: *** 作……可能未定义” – 如果/ else阻止全部内容,希望文章能够帮你解决c – 对于三元 *** 作,“警告: *** 作……可能未定义” – 如果/ else阻止所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1224672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存