定义和声明

词义

定义:(definition)在不改变目标事物本身的前提下,对概念的内涵或语词的意义所做的简要而准确的描述。

声明:(declaration)公开表态或说明真相,指声明的公告。

 

语义

定义:所谓定义就是(编译器)创建一个对象,为这个对象分配一块内存,并给它取上一个名字,这个名字就是就是我们经常所说的变量名或对象名。(对于变量,编译器确定变量的大小,然后在内存中开辟空间来保存其数据;对于函数,编译器会生成代码,这些代码最终也要占用一定的内存)。

声明:声明是仅仅告诉编译器,这个名字(标识符)已经匹配到一块内存上以及“这个函数或变量在某处可找到,它长得什么样子”。

 

变量的声明有两种情况:

定义性声明(defining declaration)是需要建立存储空间的。例如:int a在声明的时候就已经建立了存储空间。

引用性声明(referncing declaration)是不需要建立存储空间的。例如:extern int a其中变量a是在别的文件中定义的。   

从广义的角度来讲声明中包含着定义,但是并非所有的声明都是定义。我们常常这么描述:把建立空间的声明称之为“定义”,而把不需要建立存储空间称之为“声明”。很明显我们在这里指的声明是范围比较窄的,也就是说非定义性质的声明。

 

对于函数来说,函数必须在被调用之前先声明,否则无法调用。

      void sum(int a,int b);  函数的声明是一个说明语句,必须以分号结束。函数的声明是对定义函数的返回值类型说明,以通知系统在本函数中所调用的函数是什么类型。

void sum(int a,int b){}  函数的定义,整体是一个完整的函数单元 ,包含函数类型、函数名、形参及形参类型、函数体等。

 

引用:《C语言深度解剖》  北京航空航天大学出版社   陈正冲    P2-P3

你可能感兴趣的:(tools)