Declaration
声明:指将一个名称引入当前编译单元,或者重新声明一个前面已经声明过的名称,声明指定了如何解释一个名称和该名称具有的属性;
例如:
int main()
{
int a; // 声明同时也是定义了变量a,类型为int,值未初始化
int *pa; // 声明同时也是定义了变量pa,类型为指向int型的指针,值未初始化,此时为野指针
}
Definition
定义:除了以下情况,声明就是定义
a.声明函数但不包括函数体;
b.声明包含extern链接限定符,例如:extern int a;
c.声明既没有初始化语法,也没有函数体;
d.类声明中声明静态数据成员;
e.类名字声明;
f.typedef声明;
g.using声明或者using指令;
以上情况适用于C具有的特征,C++则完全适用,一般来说定义要为其对象分配或预留存储空间,而声明则不用。
声明:指将一个名称引入当前编译单元,或者重新声明一个前面已经声明过的名称,声明指定了如何解释一个名称和该名称具有的属性;
例如:
int main()
{
int a; // 声明同时也是定义了变量a,类型为int,值未初始化
int *pa; // 声明同时也是定义了变量pa,类型为指向int型的指针,值未初始化,此时为野指针
}
Definition
定义:除了以下情况,声明就是定义
a.声明函数但不包括函数体;
b.声明包含extern链接限定符,例如:extern int a;
c.声明既没有初始化语法,也没有函数体;
d.类声明中声明静态数据成员;
e.类名字声明;
f.typedef声明;
g.using声明或者using指令;
以上情况适用于C具有的特征,C++则完全适用,一般来说定义要为其对象分配或预留存储空间,而声明则不用。