当前位置:网站首页>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语言库函数和自定义函数的介绍,欢迎大家指正!!!
边栏推荐
- Multidimensional Correlation Time Series Modeling Method Based on Screening Partial Least Squares Regression of Correlation Variables
- NodeJs, all kinds of path
- 基于超参数自动寻优的工控网络入侵检测
- Multi-feature fusion face detection based on attention mechanism
- JSP out.write()方法具有什么功能呢?
- c语言字符和字符串函数总结(二)
- IO stream basics
- 632. Minimum interval
- BGP 第一次实验
- Detailed explanation of JSP request object function
猜你喜欢
![[Headline] Written test questions - minimum stack](/img/67/08f2be8afc780e3848371a1b5e04db.png)
[Headline] Written test questions - minimum stack

632. Minimum interval

微软电脑管家V2.1公测版正式发布

Automatic conversion of Oracle-style implicit joins to ANSI JOINs using jOOQ

玩转NFT夏季:这份工具宝典值得收藏

How to find new potential projects?Tools recommended

Knowing the inorder traversal of the array and the preorder traversal of the array, return the postorder history array
![[21-Day Learning Challenge] A small summary of sequential search and binary search](/img/81/7339a33de3b9e3aec0474a15825a53.png)
[21-Day Learning Challenge] A small summary of sequential search and binary search

poker question

已知中序遍历数组和先序遍历数组,返回后序遗历数组
随机推荐
c语言字符和字符串函数总结(二)
els strip deformation
含外部储能的电力系统暂态稳定分布式控制
请教一下本网站左下角的动漫人物是怎么做的?
JSP内置对象out对象的功能简介说明
go笔记记录——channel
[Solution] Emqx startup under win10 reports Unable to load emulator DLL, node.db_role = EMQX_NODE__DB_ROLE = core
JSP out.println()方法具有什么功能呢?
攻防世界-web-Training-WWW-Robots
JSP built-in object out object function introduction
Multidimensional Correlation Time Series Modeling Method Based on Screening Partial Least Squares Regression of Correlation Variables
632. Minimum interval
These 4 computer notepad software, you have to try
Redis的集群模式
2022/08/01 Study Notes (day21) Generics and Enums
How to use the go language standard library fmt package
以交易为生是一种什么体验?
JSP request对象功能详解说明
22. The support vector machine (SVM), gaussian kernel function
IO stream basics