在这一章中我们来学习一下关于函数的定义与使用。关于函数的概念我们可以这样理解,函数是一个功能的集合,它可以根据输入完成特写的功能,并将结果输出。当然有时候函数只是为了实现一些特写功能而并不一定要有输入或输入。我们想要自己编写一个函数需要编写两部分内容:声明和定义。函数的声明就是告诉编译器我们想要定义一个函数,并明确规定其返回值(输出)、函数名、参数表(输入)。声明函数的语法如下:
type function_name(type var);
下面我们来看几个声明函数的例子:
int max(int a, int b); //返回两个变量中值较大的值。
float sum(float a, float b, float c); //返回三个变量a、b、c的和。
printf(char *fmt, ...); //按格式显示
注意,关于printf函数中fmt参数后面的...表示这个函数可以接收不定个数的参数。关于这种不定参数类型的函数我们将在后续章节中学习。
对函数做出了声明之后,就可以定义函数的实现功能了,实现函数功能时,函数的名称,返回值,参数表必须要与此函数声明时一致。下面我们来实现上面前两个函数:
int max(int a, int b)
{
if (a < b)
{
return b;
}
return a;
}
float sum(float a, float b, float c)
{
return a + b + c;
}
定义好了函数内容我们就可以来使用这两个函数了。下面我们来编写程序调用这两个函数:
#include
int max(int a, int b);
float sum(float a, float b, float c);
int main(int argc, char *argv[])
{
int a = 1, b = 2;
float c = 2.3, d = 3.4, e = 4.5;
int f = max(a, b);
float g = sum(c, d, e);
printf("%d %f\n", f, g);
return 0;
}
int max(int a, int b)
{
if (a < b)
{
return b;
}
return a;
}
float sum(float a, float b, float c)
{
return a + b + c;
}
当一个函数的定义在调用这个函数之前时,可以不用声明这个函数。例如:
#include
int max(int a, int b)
{
if (a < b)
{
return b;
}
return a;
}
float sum(float a, float b, float c)
{
return a + b + c;
}
int main(int argc, char *argv[])
{
int a = 1, b = 2;
float c = 2.3, d = 3.4, e = 4.5;
int f = max(a, b);
float g = sum(c, d, e);
printf("%d %f\n", f, g);
return 0;
}
但是我们通常编写的函数往往会提供给很多程序来调用,而且在函数内部往往也要调用其它函数。如果不对函数做声明的话,多个相互调用的函数将无法通过编译器编译,也就无法使用,所以还是建议读者在编写函数时先对函数做声明。
欢迎关注公众号:编程外星人