我想创建一个可以在我的c程序中的任何地方使用的配置对象.
这样做的最佳做法是什么?
目前,我有一个如下所示的config.h:
#define OUTPUT 0
#define OUTPUT_DISPLAY 0
#define OUTPUT_WIDTH 1920
#define OUTPUT_HEIGHT 1080
typedef struct {
const char *output
const char *output_display;
int output_width;
int output_height;
} config_t;
Run Code Online (Sandbox Code Playgroud)
我会在头文件中创建一个名为config的config_t实例吗?
谢谢
您在头文件中声明了一个全局对象:
extern config_t global_config;
Run Code Online (Sandbox Code Playgroud)
然后在一些合适的.c文件中定义它:
config_t global_config;
Run Code Online (Sandbox Code Playgroud)
如果您要在头文件中定义配置变量,链接器会抱怨global_config存在多个实例,因为每次导入都会创建一个新实例(假设您的项目有多个.c文件).