声明与定义的区别

函数声明:

C语言编译系统是由上往下编译的.一般被调函数放在主调函数后面的话,前面就该有声明.不然C由上往下的 编译系统将无法识别。正如变量必须先声明后使用一样,函数也必须在被调用之前先声明,否则无法调用!函数的声明可以与定义分离,要注意的是一个函数只能被定义一次,但可以声明多次。

函数声明由函数返回类型、函数名和形参列表组成。形参列表必须包括形参类型,但是不必对形参命名。这三个元素被称为函数原型, 函数原型描述了函数的接口。定义函数的程序员提供函数原型,使用函数的程序员就只需要对函数原型编辑即可。另外要注意函数声明是一个语句,后面不可漏分号!

它的作用主要是利用它在程序的编译阶段对调用函数的合法性进行全面检查。

函数定义:

定义是指对函数功能的确立,包括指定函数名,函数值类型、形参类型、函数体等,它是一个完整的、独立的函数单位。

如果被调用函数的定义出现在主调函数之前,可以不必加以声明。因为编译系统已经先知道了已定义的函数类型,会根据函数首部提供的信息对函数的调用作正确性检查。

他们的区别:

函数的定义

函数的定义是一个完整的函数单元:

包含函数类型、函数名、形参及形参类型、 函数体

在程序中,函数的定义只能有一次

函数首部与花括号间不加分号

函数的声明

函数声明只是对编译系统的一个说明:

函数声明是对定义的函数的返回值的类型说明,以通知系统在本函数中所调用的函数是什么类型。

不包含函数体(或形参)

调用几次该函数就应在各个主调函数中做相应声明

函数声明是一个说明语句,必须以分号结束!







猜你喜欢

转载自blog.csdn.net/qq_40340448/article/details/78259106