{note:从宏'bool'#define bool _Bool'扩展出来是什么意思?

时间:2018-12-15 07:46:15

标签: c boolean

我看了看,不知道这个错误是什么意思。我正在尝试编写一个确定三角形是否有效的C程序,但是当我在命令行中将其制成时,似乎告诉我bool出了点问题。我确实花了一些时间,但是我不确定如何运行它。

Here is my code

1 个答案:

答案 0 :(得分:3)

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))