【发布时间】:2018-12-15 07:46:15
【问题描述】:
我看了又看,不知道这个错误是什么意思。我正在尝试编写一个确定三角形是否有效的 C 程序,但是当我在命令行中创建它时,它似乎告诉我 bool 有问题。我真的花了一些时间在这上面,我只是不知道如何让它运行。
【问题讨论】:
-
欢迎来到 SO!请在问题本身中发布所有代码,而不是链接到图像,这可能会随着时间的推移而下降,并且不容易复制/验证。
我看了又看,不知道这个错误是什么意思。我正在尝试编写一个确定三角形是否有效的 C 程序,但是当我在命令行中创建它时,它似乎告诉我 bool 有问题。我真的花了一些时间在这上面,我只是不知道如何让它运行。
【问题讨论】:
bool 是一个扩展为_Bool 的宏,它在<stdbool.h> 中定义。
所以当你写的时候:
if (bool valid_triangle)
它被视为你写的:
if (_Bool valid_triangle)
这不是有效的语法。 _Bool 是类型说明符,将表达式转换为类型的方法是将说明符放在括号中。所以应该是:
if ((bool)valid_triangle)
但是valid_triangle 不是变量,而是函数。它已经声明返回bool,所以你不需要强制转换它。实际上应该是:
if (valid_triangle(a, b, c))
【讨论】:
valid_triangle() 在main() 中的第二个声明并不是真正必要或可取的。