当前位置:网站首页>C语言函数详解(1)【库函数与自定义函数】
C语言函数详解(1)【库函数与自定义函数】
2022-08-02 00:14:00 【yin_尹】
一.什么是函数
提起函数,我们可能并不陌生,我们可能会联想到数学中的函数,比如说:
这就是函数,但是,你了解C语言中的函数吗?
维基百科中对函数的定义:子程序
在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。
C语言中的函数可以分为两大类:库函数和自定义函数:
接下来就带领大家学习一下:
二.库函数
1. 什么是库函数
库函数(Library function)是将函数封装入库,供用户使用的一种方式。
方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用
调用的时候把它所在的文件名用#include<>加到里面就可以了。
2. 为什么会有库函数?
我们知道在我们学习C语言编程的时候,总是在一个代码编写完成之后迫不及待的想知道结果,想把这个结果打印到我们的屏幕上看看。这个时候我们会频繁的使用一个功能:
将信息照一定的格式打印到屏幕上(printf)。
在编程的过程中我们会频繁的做一些字符串的拷贝工作(strcpy)。
在编程是我们也计算,总是会计算n的k次方这样的运算(pow)。
像上面我们描述的基础功能,它们不是业务性的代码。我们在开发的过程中每个程序员都可能用的到,为了支持可移植性和提高程序的效率,所以C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发。
简单的总结,C语言常用的库函数都有:
IO函数
字符串操作函数
字符操作函数
内存操作函数
时间/日期函数
数学函数
其他库函数
3.使用库函数的注意事项
像我们平时经常用到的 printf , scanf 等就是C语言中的库函数,使用这些库函数时必须知道的一个秘密就是:使用库函数,必须包含 #include 对应的头文件。
如果不包含,直接使用的话,编译器就会可能发出相应的警告,举个例子:
写一个简单的代码:
int main()
{
printf("hello \n");
return 0;
}
我们不包含对应的头文件,直接运行:
我们包含了对应的头文件之后,再次运行:
4.对学习库函数的建议
了解了库函数之后,我们可能会想,这些库函数需要我们全部记住吗?
不需要
我们只要再需要它们的时候会用就行了。
在这里给大家推荐一个查询库函数的网站:
链接: link
打开之后是这样的页面:
比如我们查询一个strcpy,里面又详细的解释,还有例子:
不过这是英文的,英文很重要。最起码得看懂文献。
当然大家也可以借助工具进行翻译。
其它的一些学习库函数的工具:
1.MSDN(Microsoft Developer Network) 2.http://en.cppreference.com(英文版) 3.http://zh.cppreference.com(中文版) |
三.自定义函数
接下来我们学习自定义函数:
如果库函数能干所有的事情,那还要程序员干什么?
所以更加重要的是自定义函数。
1.什么是自定义函数
自定义函数和库函数一样,有函数名,返回值类型和函数参数。
但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。
函数的组成:
ret_type fun_name(para1, *)
{
statement;
}
对于函数的返回类型:
1. 函数的返回类型如果,写成void,表示这个函数不返回任何值,也不需要返回。
2. 一个函数如果不写返回类型,默认返回int类型,但不建议这样做
2.自定义函数举例
下面我举一个自定义函数的例子,帮助大家熟悉如何自定义函数:
写一个函数可以找出两个整数中的最大值。
#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("max = %d\n", max);
return 0;
}
以上就是对C语言库函数和自定义函数的介绍,欢迎大家指正!!!
边栏推荐
- Trie详解
- How does JSP use request to get the real IP of the current visitor?
- Redis - message publish and subscribe
- Looking back at 5 recessionary times in history: How might this time be different?
- JSP 如何获取request对象中的路径信息呢?
- After an incomplete recovery, the control file has been created or restored, the database must be opened with RESETLOGS, interpreting RESETLOGS.
- Kotlin协程:创建、启动、挂起、恢复
- An Enhanced Model for Attack Detection of Industrial Cyber-Physical Systems
- [HCIP] BGP Small Experiment (Federation, Optimization)
- 字符串分割函数strtok练习
猜你喜欢
随机推荐
These 4 computer notepad software, you have to try
JSP request对象功能详解说明
【21天学习挑战赛】顺序查找和二分查找的小总结
PHP to read data from TXT file
How to use the go language standard library fmt package
els block deformation judgment.
Redis 相关问题
JSP page指令errorPage属性起什么作用呢?
磁盘与文件系统管理
什么是低代码(Low-Code)?低代码适用于哪些场景?
业务测试如何避免漏测 ?
含外部储能的电力系统暂态稳定分布式控制
Realize deletion - a specified letter in a string, such as: the string "abcd", delete the "a" letter in it, the remaining "bcd", you can also pass multiple characters to be deleted, and pass "ab" can
What does the errorPage attribute of the JSP page directive do?
基于编码策略的电网假数据注入攻击检测
GIF making - very simple one-click animation tool
go笔记记录——channel
IO流基础
基于相关性变量筛选偏最小二乘回归的多维相关时间序列建模方法
JSP内置对象out对象的功能简介说明