C语言多文件编程有关问题,求前辈们指点。(只剩下32分了,好过意不去。)
C语言多文件编程问题,求前辈们指点。。(只剩下32分了,,好过意不去。。。)
我定义了一个全局结构体变量和结构体指针变量,这些变量几乎在每个函数中都能用到,不同功能的函数放在不同的文件中,比如
typedef struct work {
char w_id[ID_LEN];
char w_name[NAME_LEN];
char w_sex;
char w_department[DEP_LEN];
char w_subdepartment[DEP_LEN];
char w_level[LEV_LEN];
char w_job[JOB_LEN];
char w_year[YEAR_LEN];
char state;
int w_age;
struct work * next;
struct work * prev;
}worker;
worker * plwfirst=NULL;
worker * plwlast=NULL;
worker * plwoperate=NULL;
函数 readWorkerData(void) 函数在a.c中, 函数 createUser(void); 在b.c中,这两个函数都要用到那个全局结构体指针,我需要把上面那些结构体变量和指针怎么处理,一开始我是定义在一个manager.h 头文件中,然后每个C文件包含manager.h 但是编译的时候提示重定义了。。。还有人说把上面的定义放在一个C文件中,然后把声明放在一个头文件中。。。不清楚具体怎么弄,请前辈们指点。。(只剩下32分了,呵呵 )
------解决方案--------------------
在.h文件中定义结构体并使用extern声明结构体指针变量,不要赋值。然后在其中一个.c文件中进行定义。然后用到这些全局变量的.c文件都把.h包含进来。
我定义了一个全局结构体变量和结构体指针变量,这些变量几乎在每个函数中都能用到,不同功能的函数放在不同的文件中,比如
typedef struct work {
char w_id[ID_LEN];
char w_name[NAME_LEN];
char w_sex;
char w_department[DEP_LEN];
char w_subdepartment[DEP_LEN];
char w_level[LEV_LEN];
char w_job[JOB_LEN];
char w_year[YEAR_LEN];
char state;
int w_age;
struct work * next;
struct work * prev;
}worker;
worker * plwfirst=NULL;
worker * plwlast=NULL;
worker * plwoperate=NULL;
函数 readWorkerData(void) 函数在a.c中, 函数 createUser(void); 在b.c中,这两个函数都要用到那个全局结构体指针,我需要把上面那些结构体变量和指针怎么处理,一开始我是定义在一个manager.h 头文件中,然后每个C文件包含manager.h 但是编译的时候提示重定义了。。。还有人说把上面的定义放在一个C文件中,然后把声明放在一个头文件中。。。不清楚具体怎么弄,请前辈们指点。。(只剩下32分了,呵呵 )
------解决方案--------------------
在.h文件中定义结构体并使用extern声明结构体指针变量,不要赋值。然后在其中一个.c文件中进行定义。然后用到这些全局变量的.c文件都把.h包含进来。