c语言函数详解1——自定义函数

article/2025/8/28 8:29:01

这篇文章理论性知识比较多,不过对于初学者对于函数的理解会有更深层次的帮助

目录

c语言的函数——子程序

自定义函数

c语言的函数——子程序

*是大型程序中的某部分代码,由一个或者多个语句组成,她负责完成某项特定的任务,相较于其他代码,具备相对的独立性

*一般有输入参数和返回值

C语言中函数的分类:1、库函数,2、自定义函数

那么为什么要使用函数?主要是为了让你省去编写重复代码的苦差 这样当有人想在电脑上实现某些功能的时候就可以进行使用

但是久而久之,C语言为了提高执行效率和可移植性,他将这些需要经常使用的代码封装进入了库函数

例如stdio.h就是c语言中的一个标准库函数

这里的话我提供几个库函数的网站,可供大家学习cplusplus.

因为是国外的网站,大家如果需要查找一些函数的话有可能需要改IP地址,并且这个网站是全英文,对英文不好的小伙伴可能有些不太友好,这里大家只能不断的查询自己不认识的单词了

或者大家也可以百度MSDN

看了这些英文是不是觉得有一些头大,所以英文再差,至少也需要看懂这些

对于英语比较差的人这里我也提供一个中文网站,但是希望大家也要掌握阅读英语文献的能力中文c语言函数查询网站

总结一下,c语言的库函数有:

*I/O函数   printf   scanf  getchar

*字符串操作函数      strlen   strcat

*字符操作函数   toupper

*内存操作函数   memcpy   memcmp  memset

*时间/日期函数   time   

*数学函数    sqrt  pow

*其他库函数

这些都是一系列的库函数

自定义函数

但是库函数也不是万能的,如果库函数能把所有的事情都昨完的话那么就不需要程序员了

所以自定义函数才是重中之重

自定义函数与库函数十分相似,有返回值,函数类型和函数参数。

首先我们应当知道函数的组成,这里我先简单写一段代码让大家了解一下

#define _CRT_SECURE_NO_WARNINGS 1//取消警告
void num(int a);
int main() {num(2);return 0;
}
void num(int a) {for (int i = a; i < 10; i++) {printf("%d", i);}
}

打印2到9的一个函数

这个void就是函数的返回值,void  就是无返回值

num是函数名 

Int a 是函数参数(形参)

 这一段用大括号括起来的这一段为函数体

这段代码前面

 叫做函数的声明,声明是告诉编译器,有这样的num的一个函数,这个函数叫做mun并且参数是Int型

当然,你也可以这样写

 这样写函数的原因是因为通常在看程序中,一般是先看main函数,再看其他的子函数,所以我们为了让看你程序的人更轻松的看懂,可以把main函数放在最前面。这算是一种代码风格,希望大家能这样书写函数。函数名也要起的有意义,这样看你函数的人一看就知道你这个函数是实现了什么。

这里我写一个实例来让大家更好的理解函数

#define _CRT_SECURE_NO_WARNINGS 1//取消警告
#include<stdio.h>
int GetMax(int,int);
int main() {int max;max = GetMax(10, 20);printf("%d", max);return 0;
}
int GetMax(int a, int b) {if (a > b) {return a;}else {return b;}
}

这是一个判断两个数中较大值的一个函数,大家可以清楚的看到这个函数的返回值是不确定的,可能是a,也有可能是b,把这个值赋给main函数中的max,并且输出出来

这个函数还算比较简单,一般别人一看就能看得出来,以后写一些复杂函数就不方便让人理解了,在这里我希望大家能做到函数具备单一出口(单一出口原则——函数只返回一个变量或者值),这样其他程序员在修改你的程序员在修改你的程序时会方便很多,并不是说是这段代码时错的,但是这样写确实是不好的。

因此这个函数应该这样写

#define _CRT_SECURE_NO_WARNINGS 1//取消警告
#include<stdio.h>
int GetMax(int,int);
int main() {int max;max = GetMax(10, 20);printf("%d", max);return 0;
}
int GetMax(int a, int b) {int MAX;if (a > b) {MAX =a;}else {MAX =b;}return MAX;
}

这样写会多增加一些变量,但是却人其他人更加容易读懂你的程序

这里可能会有些好奇的小伙伴想知道如何在一个函数中返回两个参数,在这里先卖个关子(给作者自己挖个坑,以后来填坑),c语言提供了一些其他的办法解决——指针


http://chatgpt.dhexx.cn/article/Su5hHBQt.shtml

相关文章

自定义函数

目录 一、自定义函数 二、函数参数 、传值调用和传址调用 2、1 传值调用 2、2 传址调用 三、函数的嵌套和链式访问 四、函数递归 一、自定义函数 C语言中有两类函数&#xff0c;一类是库函数&#xff0c;另外一类是自定义函数。自定义函数从字面意思上理解就是自…

C语言自定义函数

函数定义 return_type function_name([datatype1 arg1],[datatype1 arg2],...) { //函数体 } 函数三要素 返回值类型 函数名 参数列表 自定义函数的完整写法 #include <stdio.h> // 函数原型 int sum(int,int); // 调用函数 int main() { int sum(); } // 函数定义 i…

学习pyqt 继承中self的疑问

前面学习了&#xff0c;面对对象编程&#xff0c;继承&#xff0c;有了一些理解。继续学习pyqt5 看到下面有了一些疑问。 import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QIconclass Example(QWidget):def __init__(self):super().…

Python中类函数中self是什么

首先我们来看两组代码运行的结果 代码组一&#xff1a; class C1:def func1():x10print("func1的x&#xff1a;",x)def func2(self):x20print("func2的x&#xff1a;",x)C1.func1() C1.func2()结果如下 代码组二&#xff1a; class C1:def func1():x…

python中return self用法详解

直接上代码来理解return self的用法&#xff01; 示例代码1&#xff1a; class Test(object):def __init__(self):self.age 25def add(self):self.age 1print(self.age)obj Test() obj.add()运行结果&#xff1a; 有时候当我们想对实例对象的方法进行连续调用时&#xff0…

Python——self参数

self 的意思是“自己”,表示的是对象自身,当某个对象调用成员方法的时候,Python 解释器会自动把当前对象作为第1个参数传给 self ,用户只需要传递后面的参数就可以了。 self 参数的应用&#xff1a; #program0706.py self 参数的应用 class Animal:类中未定义构造方法&#x…

php 中self什么意思,php中self的用法是什么

php中self的用法&#xff1a; self是指向类本身&#xff0c;也就是PHP self关键字是不指向任何已经实例化的对象&#xff0c;一般self使用来指向类中的静态变量。 1、self可以访问本类中的静态属性和静态方法&#xff0c;可以访问父类中的静态属性和静态方法。 相关推荐&#x…

纯C++实现24位bmp格式图片的读取和修饰

问题:现有一张bmp图片,要求将它读取到程序中并进行灰度化、水平翻转、模糊、茶色滤镜四种效果的一种,并输出新图片,如下所示: 命令行输入: 其中: 参数1:-b/g/s/r,先后表示blur(模糊),grey(灰度化),sepia(褐色),row reverse(水平翻转) 参数2:源文件名 参数3:新文…

SE78上传BMP格式图片出错,出错信息提示上传的不是BMP格式图片

如下图&#xff0c;导入文件为一BMP图片(红框部分), 然后点击确认键&#xff08;黑框部分&#xff09;。 结果却出错&#xff0c;提示不是BMP文件&#xff0c;如下图红框部分。 很纳闷明明是BMP怎么就提示说不是BMP呢&#xff1f;感觉应该是上传的图片有问题&#xff0c;所以想…

C++读取bmp格式图片

类的格式按照bmp的文件头、信息头、调色板和数据域写好即可 因为图片是按字节读的&#xff0c;所以要强制让编译器不对结构体进行字节对齐&#xff0c;否则会出错 因为bmp格式规定存储时每行的像素数要补齐至4的整数倍&#xff0c;所以读入和写出时要加一些对应的操作 ————…

android 图片格式,常见图片格式详解

做了几年有关图形、图像的工作,对图片格式算是小有经验,在此写成一文章总结下。虽然一开始并不想讲很理论的东西,但写完后发现几乎全是理论,细想一下关于图片格式的知识本身就是理论的东西,囧~~ 那就力求用最简单的方式将这些“理论”讲清楚吧。 常见的图片格式有bmp, jpg…

Qt之生成png/jpg/bmp格式图片

Qt之生成png/jpg/bmp格式图片 一、问题描述二、显示效果三、核心代码示例 一、问题描述 有时候需要把Qt绘制的一些图形保存为png/jpg/bmp格式的图片&#xff0c;下面就根据自己写的一个简单的测试程序来讲解一下Qt中保存图片的方法。本文主要讲解使用Qpainter和QImage组合使用…

MFC详解显示BMP格式图片

本文主要是讲述《数字图像处理》系列栏目中的第一篇文章.主要详细介绍了BMP图片格式,同时使用C和MFC显示BMP格式,主要结合自己的《数字图像处理》课程和以前的项目叙述讲解. 一.BMP图片格式定义 BMP文件格式是Windows操作系统推荐和支持的标准图像文件格式,是一种将内存或显示…

bmp格式说明

bmp24位位图格式 创建bmp24位位图格式的图片 打开Windows系统自带的画图软件&#xff0c;如下&#xff1a; 点击“文件 > 另存为”&#xff0c;在弹出的界面中有4种bmp格式可以选择&#xff0c;如下&#xff1a; 不知道bmp格式是不是只有上面的4种&#xff0c;还是有更多…

如何批量将 bmp 格式图片转换为 png 格式

概要&#xff1a;bmp 格式是纹的操作系统当中非常常见的一种图片格式&#xff0c;这种格式的特点是包含的图像信息较丰富&#xff0c;几乎不进行压缩&#xff0c;所以导致了它存在一个很大的缺点&#xff0c;那就是占用磁盘空间过大&#xff0c;那么我们怎么将 bmp 格式的图片转…

将BMP 格式图片转换为 JPEG 格式【c语言】

源码链接: https://blog.csdn.net/qq_44394952/article/details/122587475?spm1001.2014.3001.5502. 一、任务及目标 利用c语言&#xff0c;通过将 RGB 信息转换为 YCrCb 信息、离散余弦变化、量化和 z 型编码&#xff0c;再进行游程编码和霍夫曼编码&#xff0c;最后进行尾…

如何批量将 bmp 格式图片转换转换为 jpg

概要&#xff1a;png 和 jpg 这两种格式的图片相信大家都非常熟悉&#xff0c;但是 bmp 格式的图片可能大家接触得并没有那么多&#xff0c;bmp 是 Windows 操作系统中的标准图像文件格式&#xff0c;能够被多种 Windows 应用程序所支持&#xff0c;因此格式的图片在 Windows 操…

bmp格式图的解析

文章目录 前言 一、bmp格式图的特点 二、bmp格式图的解析 总结 前言 在图像处理中经常会遇到BMP格式图的解析问题&#xff0c;本文简单介绍了bmp格式图的解析方式&#xff0c;并附上相应的C代码。 一、bmp格式图的特点 bmp图通常由图片的头文件信息和像素数据组成&#xff0c…

R语言与多元线性回归分析计算实例

6.3.7 计算实例 例 6.9 某大型牙膏制造企业为了更好地拓展产品市场&#xff0c;有效地管理库存&#xff0c;公司董事会要求销售部门根据市场调查&#xff0c;找出公司生产的牙膏销售量与销售价格&#xff0c;广告投入等之间的关系&#xff0c;从而预测出在不同价格和广告费用下…

多元线性回归检验

多元线性回归模型通常用来研究一个应变量依赖多个自变量的变化关系&#xff0c;如果二者的以来关系可以用线性形式来刻画&#xff0c;则可以建立多元线性模型来进行分析。 1.t检验 t检验是对单个变量系数的显著性检验&#xff0c;一般看p值&#xff1b; 如果p值小于0.05表示该…