【发布时间】:2023-12-11 21:13:01
【问题描述】:
在c头文件中,为什么我做的某些类型的define不用包含,只要在c文件中包含def就可以直接在header中使用?因为我认为这在 c++ 中是不可能的,例如:
定义.h
typedef int _int32;
object.h
_int32 num;
void init();
object.c
#include define.h
void init()
{
num = 12;
}
【问题讨论】:
-
您能否用更多的停顿和标点符号重新表述您的问题?我不明白你问什么...
-
如果这是你唯一的代码,这肯定不会编译。
-
你在哪里包括object.h?这一切都不同。
-
我的意思是我没有包含define.h,然后我直接在object.h中使用类型_int32,然后它编译得很好我不明白。
-
@user1051003 请使用您正在编译的完整示例更新您的代码(
gcc -c object.c应该成功)。正如 Oil 指出的那样,当前的示例将无法编译。当您的示例编译时,我保证以某种方式 define.h 包含在 object.h 之前,这就是它起作用的原因。