gcc (GCC) 4.7.2
c89
你好,
我的 service.h 文件中有以下内容
enum service_state_code {
NO_ERROR_OK,
ERROR_INCORRECT_STATE,
ERROR_EMPTY_STRING,
ERROR_NO_COMMAND_FOUND
};
const char *service_state_msg[] = {
"OK:",
"ERROR: Incorrect state for modifying service channel state",
"ERROR: No command found",
"ERROR: No command parameters",
NULL
};
get_channel_service_state(channel_t *channel, const char *msg);
我还有 2 个其他 *.c 文件,其中将包含 service.h 文件。
network.c
和socket.c
我使用它是这样的:
get_channel_service_state(channel, ss7_service_state_msg[ERROR_INCORRECT_STATE]);
但是,我收到一个链接器错误,抱怨:
multiple definition of service_state_msg first defined here
我知道我收到此错误的原因。因为service_state_msg
每次将其包含在 *.c 文件中时,它都被定义为 service.h 中的全局变量。
我只是在问service_state_msg
跨多个 *.c 源文件使用的最佳方法是什么?
非常感谢您的任何建议,