这次有个作业,老师在头文件中给出了2个例子
一个头文件"数据宣称"
const int size=30
struct student
{
int code;
char name[20];
char sex[4];
int grade[5];
}student date[size];一个头文件"数据定义"
const int size=30
extern struct student
{
int code;
char name[20];
char sex[4];
int grade[5];
}student date[size];这2个头文件大体一样,可是实在对这个问题很疑惑,在"定义"中只不过比"宣称"多了个extern,似乎是定义静态局部变量,可是与"宣称"有个关系,在下实在不明白,特此向各位提问,拜求解惑!!!!!!!
一个头文件"数据宣称"
const int size=30
struct student
{
int code;
char name[20];
char sex[4];
int grade[5];
}student date[size];一个头文件"数据定义"
const int size=30
extern struct student
{
int code;
char name[20];
char sex[4];
int grade[5];
}student date[size];这2个头文件大体一样,可是实在对这个问题很疑惑,在"定义"中只不过比"宣称"多了个extern,似乎是定义静态局部变量,可是与"宣称"有个关系,在下实在不明白,特此向各位提问,拜求解惑!!!!!!!
解决方案 »
- 求助单文档界面初始化隐藏界面闪烁问题
- 在VC中将自定义的控件插入对话框以后,对话框不能显示了
- 怎样通过模块的ID(ModuleID),得出模块句柄(modulehandle)?模块句柄和进程名柄相同吗?
- 求助!!用VC实现的简单入侵检测系统
- 请教算法,怎样检出曲线上的多个峰??敬请赐教多谢了!!!
- 这个SQL语句怎么写?急!
- ==============问五个问题==============
- scrollview下的鼠标在view窗口下的拖动实现。
- C++ 五子棋alpha-beta剪枝算法
- C++类中包含类型,如何调用,类的作用域在那些情况下使用
- 谁能告诉我mp1,mp2,mp3以及MPEG1,MPEG2,MPEG3(Layer1,2,3)他们之间的联系,有何区别?
- 请教ftp客户端数据接收
申明是告诉编译器某个符号的意义(函数名称或者变量?),而定义是真实分配空间。
最直接的感受是:如果没有申明,你将得到编译错误;而没有定义你将得到链接错误。在c语言中,申明的关键字是extern。如果编译器遇到一个没有申明的定义,编译器将会自动申明这个符号。