函数三要素:
- 函数定义
- 函数原型
- 函数调用
一、函数定义
函数可以分为两类:
(1)没有返回值的函数
void functionName(parameterList)
{
statament;
return:
}
(2)有返回值的参数
typeName functionName(parameterList)
{
statament;
return:
}
注意:对于返回值的类型规定:不能是数组,但可以是其他任何类型——整型、浮点型、字符型、指针,甚至可以是结构和对象。但我们可以将数组作为结构或对象组成部分来返回。函数的参数可以使一个或多个,并且类型可以不同。
二、函数调用
函数调用时注意参数的类型和数目匹配、返回值引用等相关问题。在此不再作陈述。
在函数中声明的变量为函数私有,并且在被调用时,计算机为这些变量分配内存,在函数结束时,计算机释放这些变量使用的内存。
三、函数原型
所谓的函数原型即函数声明,格式如下:
typeName functionName( type parameter1,type parameter2..);
这里我们需要注意的是后面的“;”不能省略,因为函数原型是一个语句,所以必须加分号。
这里我们来思考一个问题:为什么需要函数原型??
- 原型描述了函数到编译器的接口,也就是说将函数的返回值类型以及参数的类型和个数告诉编译器,因此编译器知道如何解释这个函数。
- 提高程序运行效率。编译器在搜索文件时会停止对main()函数的的编译,如果不提供原型,编译器就需要花费大量的时间在文件中查找,从而降低了运行效率。
- 避免使用原型的方法是:在使用它之前定义它。
具体来书函数原型保证以下几点:
- 编译器正确处理返回值
- 编译器检查使用的参数类型是否正确
- 编译器检查使用参数的个数是否正确