我有几个文件,比如main.c、main.h、some_funcs.c 和 some_funcs.h。
main.h is included in main.c
main.h include some_funcs.h
some_funcs.c include some_funcs.h
当我现在定义一个新的数据类型时:
//Datatypes
enum _bool {
false = 0,
true = 1
};
typedef enum _bool Bool;
如果我在例如main.h 并想在 some_func.c 中使用它是行不通的。有没有办法在某处定义它而不总是在定义它的地方包含标题?
将定义放入some_funcs.h
。这将使它在 main.h、main.c、some_funcs.h 和 some_funcs.c 中可见。
一个更通用的解决方案是将常见的数据类型放入一个名为 common.h
的文件中。
然后您将此文件包含在所有头文件中。
这将是 common.h
文件的内容。 ifdef
是忽略文件的内容(如果它已经被包含)。
#ifndef COMMON_H
#define COMMON_H
//Datatypes
enum _bool {
false = 0,
true = 1
};
typedef enum _bool Bool;
#endif
我是一名优秀的程序员,十分优秀!