这边在一个.c文件中定义和初始化一个二字符数组,想要在其他.c文件中也使用,该怎么完成这个?
char g_idle_icon_name[DSS_INVALID][64] = {
[DSS_EDIT] = {"side_dss_edit"}, /*none*/
[DSS_BLF_LIST] = {"side_dss_blflist"},
[DSS_DTMF] = {"side_dss_dtmf"},
[DSS_KEY_EVENT] = {"side_dss_keyevent"}, /*none*/
[DSS_LINE] = {"side_dss_line"},
[DSS_MCAST] = {"side_dss_mcast"},
[DSS_MEM_AXFER] = {"side_dss_mem_axfer"},
[DSS_MEM_BXFER] = {"side_dss_mem_bxfer"},
[DSS_MEM_CALLPARK] = {"side_dss_mem_callpark"},
[DSS_MEM_CFW] = {"side_dss_mem_cfw"},
[DSS_MEM_CONF] = {"side_dss_mem_conf"},
[DSS_MEM_DTMF] = {"side_dss_mem_dtmf"},
[DSS_MEM_INTERCOME] = {"side_dss_mem_intercome"},
[DSS_MEM_MWI] = {"side_dss_mem_mwi"},
[DSS_MEM_NEWCALL] = {"side_dss_mem_newcall"},
[DSS_MEM_NONE] = {"side_dss_mem_none"},
[DSS_MEM_PRESENT] = {"side_dss_mem_present"},
[DSS_MEM_SPDIAL] = {"side_dss_mem_spdial"},
[DSS_URL] = {"side_dss_url"},
};
要在该数组的定义前添加extern关键字,这会告诉编译器这个变量是在其他文件中定义的。
例如,在其他.c文件中,你可以这样声明变量:
extern char g_idle_icon_name[DSS_INVALID][64];
这将使编译器知道g_idle_icon_name数组是在其他文件中定义的,并且可以在当前文件中使用。
在其它.c文件中只需要
extern char g_idle_icon_name[DSS_INVALID][64];
进行外部声名就可以直接使用了。