gpt4 book ai didi

c++ - GCC C++ 警告 : suggest parentheses

转载 作者:太空宇宙 更新时间:2023-11-04 16:02:20 24 4
gpt4 key购买 nike

我编写了一个表达式解析器,它为 x86、x64 和 ARM 生成一堆汇编指令。

为了测试它,我编写了一个生成随机表达式的小应用程序,用 GCC 编译它们并将结果与​​我的代码进行比较,到目前为止一切顺利。

现在我想让我的解析器产生类似于 GCC 的警告。

我注意到 GCC 5.1.0

    int a = 100 + 100 | 10;

GCC 在 | 周围给出建议的括号警告

但是

    int b = 100 * 100 | 10;

GCC 不给出警告。

但是加法和乘法的优先级都高于按位或,那么为什么在 int b = 表达式上没有警告?

我很累,哈哈,所以可能忽略了一些事情。

最佳答案

最终的答案只能来自实现者,但我想原因是有其他语言对这些运算符有不同的偏好,因此那些其他语言的用户可能会误解表达式。例如在 some Pascal dialects, &* 具有相同的优先级,而 |+ 具有相同的优先级,因此包含两个 的表达式code>+| 之间没有括号可能有不同的解释(标准 Pascal 没有 &|,但是标准 Pascal 中 andor 的优先级遵循相同的规则)。我想就像许多语言复制 C 运算符优先级一样,其他语言复制 Pascal 运算符优先级。

关于c++ - GCC C++ 警告 : suggest parentheses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41196635/

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