带有标题和包含的c源代码

时间:2011-12-12 17:50:44

标签: c header init

在c头文件中,为什么我不必包含我所做的某些类型的定义,只要我在c文件中包含def,我就可以直接在头文件中使用它?因为我认为这在c ++中是不可能的,例如:

define.h

typedef int _int32;

object.h

_int32 num;

void   init();

object.c

#include define.h

void init()
{
 num = 12;
}

3 个答案:

答案 0 :(得分:0)

你做不到。您的编译器是错误的,或者您是(我打赌后者)。发布您的整个代码。

我的猜测是你要么:

  • object.h

  • 中加入了define.h
  • 包含一些声明为num

  • 的其他文件
  • 您没有编译源代码

无论如何,在您发布实际代码之前,我们无法确定。

编辑:

如果问题是您可以在没有包含的情况下使用_int32,请记住_int32在某些平台上可以是基本类型。但在您的示例中,您使用的是num,这是不可能的。

答案 1 :(得分:-1)

你永远不会包含object.h,否则它会起作用。但是,通常情况下,_int32 num仍会出现在.c文件中。

答案 2 :(得分:-1)

我不确定你的问题究竟是什么,但你可以通过让编译器生成预处理输出并查看它来学到很多东西。