我不知名的前任留下了密码。我尝试使用其中的一些,但他的代码看起来很不寻常。
1.他所做的不是在头文件而是在c文件中定义变量:variables.c
CHGR_CMD comand[MAX_COMANDS] __attribute__ ((section ("external")));
RAWDAT rawdat[MAX_RAWDAT] __attribute__ ((section ("external")));
SC_TEST *curr_test[NUMCHANS]; /* array of pointers to current testrec */
SC_TESTSETUP chparam[NUMCHANS] __attribute__ ((section ("external")));
SC_HOLDSTAT stats[NUMCHANS] __attribute__ ((section ("external")));
RAWDAT *bufs[NUMCHANS];
//FACTS control[NUMCHANS];
short ntest;
short new_dbuff;
short start_err;
short update_status;
long status_sent;
short load_done;
char h_lok; ....
2 init_vars() 在另一个 c 文件中初始化上述变量:init_vars.c
memset((char *) rawdat,0 ,sizeof(rawdat));
memset((char *) curr_test,0 ,sizeof(curr_test));
memset((char *) chparam,0 ,sizeof(chparam));
memset((char *) stats,0 ,sizeof(stats));
memset((char *) bufs,0 ,sizeof(bufs));
memset((char *) comand,0 ,sizeof(comand));
ntest = 0;
new_dbuff = 0;
start_err = 0;
3.在main.c中调用init_vars()
我第一次尝试在 init_vars.c 中直接包含“variables.c”,但它给了我以下错误:
#10056 symbol "ad_lok" redefined: first defined in "./variables.obj"; redefined in "./init_vars.obj" sCharger_Test_v1 C/C++ Problem
不仅 ad_lok 变量,而且 variables.c 中定义的每个变量都出现错误。
将 variables.c 更改为 variables.h 仍然会给我同样的错误。
如何处理变量定义的 c 文件而不是头文件?
谢谢