C语言详解系列——函数的认识(1)库函数,自定义函数

函数的简介

我们从小学习数学,相信大家都听过一个词叫做函数,在我们的印象里面函数就是类似于f(x) = 2x+y这样的式子,那么在我们C语言中也有对函数的定义,并且我们每天都在使用。用我们的百度查询C语言函数的定义,给出我们的答案是,C语言函数是一种函数,用来编译C语言。而在维基百科中是这样定义的,他们将函数定义为子程序

1.在计算机科学当中,子程序,是一个大型程序中的某一部分代码,有一个或者多个语句块组成。它负责完成某项特定的任务,而且相较于其他代码,具备相对的独立性。
2.一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被即成为软件库。

关于函数的定义我们在之后的讲解中会带领大家细细品味。

C语言中函数的分类

库函数

我们知道,在我们写代码时经常会用到一些功能,例如:输入、输出、拷贝、计算等功能,这些功能都是基础功能,是非业务性代码,如果这样的代码还需要让程序员自己定义,会增加代码出bug的风险,也会降低代码的可移植性,所以C语言的编译器提供了一些函数,这些函数我们称为库函数。库函数的使用增加了代码的可移植性和开发的效率,方便程序员的开发。
C语言就库函数的标准做了一些工作,他定义了库函数的函数名、功能、参数、返回类型。但是如何实现C语言没有给出定义,如何实现是编译器厂商实现的。

#include<stdio.h>
int main()
{
	int a = 0;
	printf("%d", a);
	return 0;
}

上图代码我们使用了printf()库函数,我们仅仅是使用他,如何实现,怎么实现的我们并不知道。这就是函数定义当中说的对代码的封装和细节的隐藏。向这样的库函数还有很多,难道我们都要把他记住嘛,其实不是,我们说授人与鱼不如授人与渔,所以这里我们要跟大家分享的不是库函数,而是如何学习库函数。

如何学习库函数

www.cplusplus.com 这个网站可以帮助我们学习库函数相关的知识。
在这里插入图片描述
如图打开这个网站,我们查找printf()库函数,我们看见与这个库函数的相关知识都为我们展示了出来,使用时引用什么头文件,返回值类型,和参数类型,具体的功能都为我们展示了出来,所以当我们以后遇到了不会用不了解的库函数,我们可以通过查阅来自行学习。
我们来带领大家查询一下库函数strcpy(),展示一下如何自主学习库函数。
首先我们打开网站,输入stecpy()进行查找这个库函数
在这里插入图片描述
我们可以最先看到的就是绿色字体交代了strcpy()库函数的返回类型和参数类型,以及下面的对与这个库函数功能的介绍,大致意思就是字符串的拷贝,将一个字符串从源头拷贝到目的地去,下面的Parameters是形式参数的意思,Return Value是返回值的介绍,之后就是在代码中举例演示,了解了上面这些我们可以自己在代码中尝试使用一下这个库函数。

int main()
{
	char arr1[] = "";
	char arr2[] = "hello";
	strcpy(arr1, arr2);
	printf("%s\n", arr1);

	return 0;
}

当我们写出这个代码并执行的时候,发现报错了,如下图,出现这种错误的原因就是使用库函数没用引用头文件,我们在返回网站学习,发现使用库函数strcpy()时一定要引用头文件#include<string.h>
在这里插入图片描述

#include<string.h>
int main()
{
	char arr1[20] = "XXXXXXXXXXXXX";
	char arr2[] = "hello";
	strcpy(arr1, arr2);
	printf("%s\n", arr1);

	return 0;
}

在这里插入图片描述
再次执行我就得到了这样的结果,这样一个库函数的大致用法我们就掌握了,在以后的学习中,使用的都是这样的方法。

库函数的分类和注意事项

在C语言中常用的库函数都有:

IO函数(input,output)
字符串操作函数
字符操作函数
内存操作函数
时间/日期函数
数学函数
其他库函数

值得注意的是,当我们在使用库函数时,必须包含头文件#include对应的头文件例如我们在使用printf()库函数时我们需要引用头文件#include<stdio.h>

自定义函数

当然了在我们的C语言当中不只有库函数,不然我们程序员存在的意义是什么呢?所以更加重要的就是自定义函数自定义函数和库函数一样,有函数名,返回值类型,和函数参数。但不一样的是这些都是由我们自己设计的。我们在代码中给大家介绍一下函数的组成:


int sum(int a)
{
	a = 1;
	return a;
	
}

sum我们称为函数名,int称为返回值类型,int a我们称为函数参数,大括号里面的内容我们称为语句项。给大家举个例子吧:我们写一个函数找出两个整数的最大值:

#include<stdio.h>
int get_max(int x, int y)
{
	if (x > y)
	{
		return x;
	}
	else
	{
		return y;
	}
}
int main()
{
	int num1 = 10;
	int num2 = 20;
	int max = get_max(num1, num2);
	printf("%d", max);
}

在这里插入图片描述
如图我们就使用函数,实现了求解两个数中的较大数的输出,使用函数的好处是,一行代码可以多次使用,增加了代码的复用性。当然我们也可以简化一下函数里面的函数体

#include<stdio.h>
int get_max(int x, int y)
{
	return x > y? x : y;
}
int main()
{
	int num1 = 10;
	int num2 = 20;
	int max = get_max(num1, num2);
	printf("%d", max);
}

这样同样可以实现,其实函数就像时一个工厂一样,原材料交给工厂,经过工厂的加工最后返还给产品,我们将num1 num2 交给函数,函数最后返回最大值,是不是有异曲同工之妙,这样是不是更好理解函数的作用了。

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悲伤猪小猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值