c - 如何创建配置对象

yas*_*r99 2 c config

我想创建一个可以在我的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实例吗?

谢谢

Hen*_*ler 5

您在头文件中声明了一个全局对象:

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文件).