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

目录

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语言提供了一些其他的办法解决——指针

c语言函数详解1——自定义函数相关推荐

  1. python自定义函数详解_Python自定义函数

    自定义函数 使用def定义函数,例如: def my_abs(x) : if x >= 0 : return x else : return -x 函数可以返回多个值,但是这是假象,实际上函数返 ...

  2. php output详解,PHP输出缓冲控制Output Control系列函数详解,output函数详解

    PHP输出缓冲控制Output Control系列函数详解,output函数详解 概述 以前研究过PHP的输入输出缓冲,不过博客搬家以后,原来文章找不到了,今天看到一篇好文,顺便转载过来. 简介 说到 ...

  3. MaxCompute SQL函数详解 ODPS SQL函数详解---之日期相关函数

    MaxCompute SQL函数详解 ODPS SQL函数详解 日期函数 to_date函数 返回类型:datetime 语法:to_date(类型 参数1,类型 参数2);to_date(strin ...

  4. MaxCompute SQL函数详解 ODPS SQL函数详解---之常用数学运算相关函数

    MaxCompute SQL函数详解 ODPS SQL函数详解---之常用数学运算相关函数 MaxCompute/ODPS SQL常用数学运算相关函数 ABS函数-计算绝对值 sql:select A ...

  5. mysqlsum绝对值_MySQL_MySQL笔记之数学函数详解,绝对值函数ABS(x)和圆周率函数P - phpStudy...

    MySQL笔记之数学函数详解 绝对值函数ABS(x)和圆周率函数PI() mysql> SELECT ABS(0.5), ABS(-0.5), PI(); +----------+------- ...

  6. python def函数报错详解_python自定义函数def的应用详解

    这篇文章主要介绍了python自定义函数def的应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 这里是三岁,来和大家唠唠 ...

  7. c++:内联函数详解和普通函数的区别

    文章目录 前言 Ⅰ.常规函数 Ⅱ.内联函数 1.语法 2.注意 Ⅲ.选择地使用内联 思考? 前言 内联函数是c++为了提高程序的运行速度做的改进,它与普通函数区别在于: 编译器如何将它们组合到程序中. ...

  8. C语言编写字符串拷贝(strcpy)函数详解以及assert函数

    目录 一.strcpy函数 原型声明 功能 说明 代码及运行结果 二.自己编写strcpy函数 代码一及运行结果 代码二(改进)及运行结果 代码三(进一步改进)及assert函数 在这里解释一下什么是 ...

  9. php 时间函数详解,PHP时间函数date()详解

    html> /* php语言中默认设置的是标准的格林威治时间(即采用的是零时区),与我们本地的时间相差8个小时.所以要获取本地当前时间必须要更改PHP语言中的时区设置,只需在date()函数前加 ...

最新文章

  1. SQL语句实现取消自增列属性
  2. mysql数据库优化命令_MySQL数据库优化总结
  3. 从我开始学单片机到完成一个智能小车的制作我都需要掌握哪些知识?
  4. iphone开发如何测试?
  5. 论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition
  6. 输入框限制只能输入数字,正数、负数、0,最多两位小数;数字输入框可以输入负数,并最多保留两位小数;el-number-input去掉四舍五入和自动补齐小数;
  7. java工作台无法显示_【Eclipse】使用指南(18)搜索工作台
  8. 每日一题(49)—— 有符号数与无符号数
  9. TortoiseSVN中图标的含义
  10. CleanCodeHandbook Chapter 5: Bit Manipulation(33-34)
  11. python管道pipe_Python multiprocessing模块中的Pipe管道
  12. Socket通信学习(二):序列化与反序列化
  13. 数学常用公式及规律、结论(三)
  14. ua解析接口_截取字符串+ua解析访问来源+stream多级分组
  15. 工业数据存储数据库选型比较
  16. 想把PDF论文里面的图片导出来,有什么办法
  17. u盘安全删除 linux,怎么安全删除U盘
  18. 监控计算机和家用计算机的区别,建筑设备监控系统复习题
  19. 仿秒拍视频网UI主题模板+Emlog内核开发
  20. 大数据毕设题目推荐 - 最新大数据毕设选题 - 毕业设计项目方向课题

热门文章

  1. SSM配置头文件和代码
  2. manjaro linux 安装espeak语音朗读软件并且简单使用
  3. 输入框插入表情的实现
  4. 2005-2022中国企业对外直接投资、OFDI海外投资明细、中国全球投资追踪数据CGIT(含非建筑施工类问题投资)
  5. (附源码)小程序+spring boot校园二手交易平台 毕业设计 191637
  6. echars实现自定义山西省地图和地图下钻返回
  7. 了解并善于利用人类记忆的特点
  8. 一个树列表控件的例子 (CTreeListCtrl)
  9. 有什么好用的电容笔?好用的苹果平替笔
  10. [讨论]有关usb数据的读写