什么是声明?什么是定义?

在搞清楚这个问题之前,需要在头脑里整理下C语言的术语。

记住,C语言中的对象必须有且只有一个定义,但它可以有多个extern声明;

这里说的”对象”与C++里的对象并无关系,这里的”对象”只是跟链接器有关的一些”东西”,比如函数或者变量;

定义:
是一种特殊的声明,它创建了一个对象;

声明:
简单的说明了在其它地方创建的对象的名字,它允许你使用这个名字;

让我们回顾一下这两个术语:

定义:
只能出现在一个地方;确定对象的类型并分配内存,用于创建新的对象;
如:int my_array[10];

声明:可以多次出现;描述对象的类型,用于指代其它地方定义的对象(例如在其它文件里)
如:extern int my_array[];

你可能感兴趣的:(什么是声明?什么是定义?)