在c头文件中,为什么我不必包含我所做的某些类型的定义,只要我在c文件中包含def,我就可以直接在头文件中使用它?因为我认为这在c ++中是不可能的,例如:
define.h
typedef int _int32;
object.h
_int32 num;
void init();
object.c
#include define.h
void init()
{
num = 12;
}
答案 0 :(得分:0)
你做不到。您的编译器是错误的,或者您是(我打赌后者)。发布您的整个代码。
我的猜测是你要么:
在object.h
define.h
包含一些声明为num
您没有编译源代码
无论如何,在您发布实际代码之前,我们无法确定。
编辑:
如果问题是您可以在没有包含的情况下使用_int32
,请记住_int32
在某些平台上可以是基本类型。但在您的示例中,您使用的是num
,这是不可能的。
答案 1 :(得分:-1)
你永远不会包含object.h,否则它会起作用。但是,通常情况下,_int32 num
仍会出现在.c文件中。
答案 2 :(得分:-1)
我不确定你的问题究竟是什么,但你可以通过让编译器生成预处理输出并查看它来学到很多东西。