当前位置:网站首页>C语言函数(1)
C语言函数(1)
2022-07-22 22:16:00 【蝼 蚁 望 天】
前言
在学习数学的过程中函数这一名词是常见的,但在C语言中函数是什么?
先来看一下维基百科对函数的定义:子程序
在计算机科学中,子程序(英语: Subroutine, procedure, function, routine, method,subprogram, callable unit),是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。
一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。
C语言中函数的分类
C语言中函数分为库函数和自定义函数
库函数
什么是库函数?实际上在学习C语言的过程中我们一直都在用库函数例如printf、scanf等等。
那为什么会有库函数呢?
以printf函数为例,它的作用就是输出,我们使用时很方便。但实际上printf函数最初的编写需要几千行代码,而我们随便编写一个程序都可能用到printf函数的输出功能,如果没有printf函数我们每一个程序猿想用输出功能时就要编写几千行代码而且编写过程中很容易出错,这无疑很浪费人力物力。所以为了一劳永逸我们伟大的程序猿发明了库函数。
所以库函数的作用:1.提高开发效率 2.使编程更加规范 3.减少bug。
但C语言的库函数非常多,有很多库函数并不常用所以大家只要记住一些常用的库函数就好例如printf,scanf等。
另外在使用库函数时需要有各种各样的头文件。以下用代码举例:
int main()
{
printf("hello world");
return 0;
}

可以看到这是我们学习C语言入门的第一个代码但是却报错了,而报错原因就是我使用了printf函数但没有在开头写#include<stdio.h>。而C语言的头文件不止<stdio.h>还有例如<string.h>等等,在使用头文件时务必在其前面加上#include。
这里给大家提供三个查询C语言库函数的网站:
www.cplusplus.com
http:/len.cppreference.com(英文版)
http://zh.cppreference.com(中文版)
这里还是推荐大家使用第一个网站,因为第一个网站搜索功能更加完善而且相较于后面两个网站而言第一个网站的访问速度较快,虽然其页面都是英文但大家可以借助各种翻译器。
自定义函数
如果库函数能干所有的事情,那还要程序员干什么?
所有更加重要的是自定义函数。
自定义函数和库函数一样,有函数名,返回值类型和函数参数。
但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。
以下为自定义函数的伪代码样例:
type name(para1,para2,....)
{
statement;//代码块,这里需要注意的是自定义函数代码块无论几行都要加花括号
}
如上图type是返回类型如int,char等name是函数名,para1,para2则是函数参数。
以下为代码样例:
#include <stdio.h>
int get_max(int x, int y)//这就是自定义函数int为其返回类型,get_max为其名字这里需要注意函数的名字最好与其功能相符,这是一种良好的编程习惯。
{
if (x > y)
return x;
else
return y;
}
int main()//主函数
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int m = get_max(a, b);//函数的使用将返回值给变量m
printf("%d\n", m);
return 0;
}

还有就是自定义函数的位置问题,自定义函数可以如上图放在主函数之前也可以放在主函数之下,如果自定义函数放在了主函数之下需要在程序开头加一个函数声明。
具体代码样例如下:
#include <stdio.h>
int get_max(int x, int y);//函数声明
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int m = get_max(a, b);
printf("%d\n", m);
return 0;
}
int get_max(int x, int y)
{
if (x > y)
return x;
else
return y;
}
如上图,若自定义函数放在主函数之下最好放一个函数声明,否则有些编译器可能报错。
另外要拓展一种反回类型为void的函数,void函数是没有返回值的,也就是void函数没有return。具体代码示例如下:
#include <stdio.h>
void print_sentence()//void类型函数,无函数参数
{
printf("hahaha");
}
int main()
{
print_sentence();
return 0;
}

任何返回类型(指int,char,void等等)的自定义函数的函数参数都可有可无,这个需要根据具体情况判断是否要写函数参数.
最后请各位看官老爷赏个一键三连,若博客有问题欢迎私聊或在评论区指正。
边栏推荐
猜你喜欢

实验二 YUV

使用路由协议配置 IPv6 over IP手动隧道

Worthington羟基类固醇脱氢酶技术说明及测定方案

VMware virtual machine changes static IP and reports an error unit network Service entered failed state solution

ASP. Net core creates MVC projects and uploads multiple files (streaming)

How to use C language to realize simple employee information management system

Matlab保存数据到csv文件的方法分享

General, special and hidden attributes of the file (instance generates animation)

Can PHP split arrays

技术干货 | 数据处理好难?来看MindSpore提供的解决思路!
随机推荐
Istio架构扩展机制
实验二 YUV
使用同一个接口实现不同登录的方式
目标检测之锚点与锚框
General, special and hidden attributes of the file (instance generates animation)
VMware virtual machine changes static IP and hostname, and uses xshell to connect
重链剖分例题配套题解的题解
Spark troubleshooting -precondition eof: no length prefix available
U盘被格式化数据能恢复吗,U盘被格式化了怎样恢复
数据库基础及安装
机器学习笔记 - 基于深度学习(HomographyNet)的图像单应性估计
主控芯片CSU18M92开发智能体重秤方案
Has the live broadcast function of the multi merchant system been used? 666 for used friends!
Experiment 5 JPEG
Networkx visualizes graphs
学会这些Sketchup技巧,工作效率提高一半
笔者认为,元宇宙与互联网的发展逻辑在某种成都上是截然不同的
Rust——关于Option详解
学习总结 | 真实记录 MindSpore 两日集训营能带给你什么(一)!
Can PHP array subscripts only start from 0