C语言学习笔记day15—函数类型

今天开摆了,但还是要发一点东西

函数类型

声明函数数时必须声明函数的类型。带返回值的函数类型应该与其返回值类型相同, 而没有返回值的涵数应声明为void 类型。如果没有声明雨数的类型,旧版本的C编译器会假定函数的类型是int。这一惯例源于C的早期,那时的涵数绝大多数都是int类型。然而,C99标准不再支持int 类型函数的这种假定设置。

类型声明是函数定义的一部分。要记住, 函数类型指的是返回值的类型,不是函数参数的类型。例如,下面的涵数头定义了一个带两个int 类型参数的雨数,但是其返回值是doub1e类型

double Klink(int a, int b)

要正确地使用函数, 程序在第1次使用函数之前必须知道涵数的类型。方法之一是,把完整的涵数定又放在第1次调用涵数的前面。然而,这种方法增加了程序的阅读难度。而且,要使用的雨数可能在C库或其他文件中。因此, 通常的做法是提前声明函数,把函数的信息告知编译器。例:

#include<stdio>
int imin(int,int);
int main(void)
{
int evil1,evil2,lesser;

第2行代码说明 imin是一个涵数名,有两个int类型的形参,且返回int 类型的值。现在,编译器在程序中调用imin()函数时就知道应该如何处理。

我们把函数的前置声明放在主调函数外面。当然,也可以放在主调函数里面。例:

#include<stdio.h>
int main(void)
{
int imin(int,int); /*声明imin()函数的原型*/
int evil1,evil2,lesser;

}

注意:这两种情况,函数原型都声明在使用函数之前。

ANSIC标准库中,涵数被分成多个系列,每一系列都有各自的头文件。这些头文件中除了其他内容还包含了本系列所有函数的声明。例如, stdio.h 头文件包含了标准I/0库涵数(如,printf()和scanf())的声明。 math.h 头文件包含了各种数学函数的声明。例如, 下面的声明:

double sqrt (double);

告知编译器sqrt()函数有一个double类型的形参,而且返回double 类型的值。不要混淆函数声明和定义。函数声明告知编译器函数的类型, 而函数定义则提供实际的代码。 在程序中包含 math.h 文件告知编译器:sqrt()返回double类型,但是sqrt()函数的代码在另一个库函数的文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值