【发布时间】:2011-11-29 14:35:54
【问题描述】:
构造标题的正确方法是什么?有一些类似的问题,但没有一个给出好的答案。现在我正在使用这个:
#ifndef INCLUDE_FILENAME
#define INCLUDE FILENAME
/* Includes */
/* Constants, enums */
/* Structure */
/* Globals */
/* Function prototypes */
#include "File.c"
#endif
然后我#include来自程序的标题。
这有很多问题,必须以正确的顺序包含内容,我相当确定这是错误的结构。
理想情况下,它应该在构建单个文件和单独构建模块时工作。
一个相关的问题是:全局变量应该在头文件中实现,还是定义为外部并在源文件中实现?
【问题讨论】:
-
为什么将宏 INCLUDE 定义为 FILENAME? :)
-
您实际上是否在头文件中包含源文件,如您的示例所示?这通常是不受欢迎的,因为它可能导致多个定义问题。
-
Nobody & Nate 一针见血。
-
我假设你的意思是
#define INCLUDE_FILENAME? -
@Bart 和 @Nobody,对不起:是的,这是一个错字。