C 中允许布尔返回类型吗?
当我尝试在 GCC 编译器中编译返回类型为 bool 的函数时,编译器会抛出此错误。
error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘comp’
但是当我将返回类型更改为 int 时,它就成功编译了。
其功能如下。
bool comp(struct node *n1,struct node *n2)
{
if(n1 == NULL || n2 == NULL)
return false;
while(n1 != NULL && n2 != NULL)
{
if(n1->data == n2->data)
{ n1=n1->link; n2=n2->link; }
else
return false;
}
return true;
}
这里我正在比较两个链表。 C 是否支持 bool 返回类型?
When I try to compile a function with return type bool
in GCC compiler, the compiler throws me this error.
error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘comp’
But when I change the return type to int
, it is getting compiled successfully.
The function is as below.
bool comp(struct node *n1,struct node *n2)
{
if(n1 == NULL || n2 == NULL)
return false;
while(n1 != NULL && n2 != NULL)
{
if(n1->data == n2->data)
{ n1=n1->link; n2=n2->link; }
else
return false;
}
return true;
}
Here I am comparing two linked lists. Is bool return type supported in C or not?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
bool
在 C99 之前不作为关键字存在。在 C99 中,它应该可以工作,但正如 @pmg 下面指出的那样,它仍然不是关键字。它是在
中声明的宏。bool
does not exist as a keyword pre-C99.In C99, it should work, but as @pmg points out below, it's still not a keyword. It's a macro declared in
<stdbool.h>
.尝试包括:
try to include:
一种执行手动 bool 的方法
,即返回 1 或 0,但友好地你会得到 true 和 false;
毕竟 bool 是 1 或 0
a way to do a manual bool
ie it is returning 1 or 0, but amiably you get as true and false;
After all a bool is a 1 or 0