2011-08-01 62 views
1

我试图用我的main.c在同一项目中的另一个Ç源文件中声明的预处理器变量,但我得到一个编译时错误,包括从main.c中:未定义的符号“mysymbol”。现在,什么是关于包含它的使用#define出方的文件的规则?什么是#的范围define'd变量?

+3

如果你需要在多个类使用它,你应该在头文件中定义的,则包括用在源文件中的头文件。 –

+1

@Hunter:“class”?他问的是C,而不是C++。但即使在C++中,它也应该是“不止一个源文件”。 –

+0

@Keith,是啊OOP滑那里。 –

回答

9

现在,有什么关于使用#define出方的 文件中包含它

一个#define不是它的文件外可见的规则。使其在定义文件外部可见的唯一方法是包含该文件。

所以看起来你应该把它放在双方main.c和其他文件包含的头。

3

您需要将#define放在标题中,并且#include将其放在要引用它的所有文件中。