未定义的'stu1' 结构体的定义,有个小问题,帮忙看看
主程序
-------------------------------
struct student stu1;
int main(int argc, char* argv[])
{
getStudentName();
printf( "%d ",stu1.no);
getch();
return 0;
}
-------------------------------
a.h
-------------------------------
struct student{
int no;
char *name;
};
void getStudentName(void);
-------------------------------
a.c
-------------------------------
#include "a.h "
//extern struct student stu1;
void getStudentName(void){
stu1.id=5;
}
-------------------------------
报错:a.c里的 stu1.id=5;
[C++ Error] a.c(5): E2451 Undefined symbol 'stu1 '
未定义的 'stu1 ',为什么?
[解决办法]
#include "a.h "
[解决办法]
重复包含了 "a.h "
用条件编译
#ifndef _A_H_H
#include "a.h "
#endif
[解决办法]
extern struct student stu1; 不能删
[解决办法]
a.h
-------------------------------
#ifndef _A_H_H
#define _A_H_H
struct student{
int no;
char *name;
};
void getStudentName(void);
#endif
-------------------------------
a.c
-------------------------------
#include "a.h "
struct student stu1;
void getStudentName(void){
stu1.id=5;
}
-------------------------------
主程序
-------------------------------
#include "a.h "
extern struct student stu1;
int main(int argc, char* argv[])
{
getStudentName();
printf( "%d ",stu1.no);
getch();
return 0;
}
-------------------------------