【发布时间】:2016-12-03 05:43:40
【问题描述】:
我在创建函数时在 C 语言中搞砸了,结果以某种方式结束了这样的比较:
if (sizeAllocated > type_get_binary_size(data) > spaceAvailable)
(对我而言)出乎意料的是,编译时没有发出警告(使用用于 ARM 的 IAR 编译器,带有 IAR 扩展的 C99 标准)。
这看起来不应该是有效的 C (至少它不是我目前能想到的任何其他语言的有效比较),一些大师可以帮助我阐明这是否是一些特定于 IAR 的怪癖或如果它是实际的标准 C 语言太晦涩难懂而无法包含在任何常见的教程中?
【问题讨论】:
-
我在发布问题之前尝试过搜索,但没有找到,谢谢@LưuVĩnhPhúc! :)
-
这是一个有效的表达式。它是否是一个有效的比较取决于你期望它做什么。
-
您可能想要启用更多警告,
gcc -Wall -W或clang -Weverything -
@chqrlie 要是我能使用 GCC 或 Clang 就好了……不过,更多警告可能是个好主意
标签: c