C 使用布尔返回类型导出文件(*.h)中的函数签名

C 使用布尔返回类型导出文件(*.h)中的函数签名,c,gcc,compiler-construction,C,Gcc,Compiler Construction,我有一个文件: // mylib.c // ------- #include <stdbool.h> bool is_zero(int n) { return (n == 0); } 编译时,我得到“mylib.o:error:unknown类型名'bool'” 我错过什么了吗?当导出的函数具有需要导出类型的签名时,是否需要执行特殊操作?您还需要在mylib.h中包含stdbool.h bool是一个扩展到\u bool类型的宏,这个bool宏在stdbool.h中定义,正

我有一个文件:

// mylib.c
// -------

#include <stdbool.h>

bool is_zero(int n)
{
  return (n == 0);
}
编译时,我得到“mylib.o:error:unknown类型名'bool'”


我错过什么了吗?当导出的函数具有需要导出类型的签名时,是否需要执行特殊操作?

您还需要在
mylib.h
中包含
stdbool.h


bool
是一个扩展到
\u bool
类型的宏,这个
bool
宏在
stdbool.h
中定义,正确的方法是将
\include
移动到mylib.h,然后将mylib.h包含在mylib.c

中。。。删除mylib.h,如果不包含它,那么它就没有意义。它实际上包含在某个地方,这才是您试图解决的真正问题。删除它将显示以下位置:)将#include for stdbool.h放在该文件中,easy peasy。
// mylib.h
// -------

bool is_zero(int n);