为了更好管理代码,减少代码冗余,常把代码封装成函数的形式;

步骤

1、函数申明

为了告诉其他代码该函数的调用格式。

格式:

返回值类型  函数名(类型1 形参名1,类型2 行参名2);

注意:

写申明必须加分号

函数名一般全部小写,用下划线分隔

如果不需要返回值,写void,如果没有形参,则写void

形参即使类型相同,也要独立加类型名

2、函数定义

函数的实现代码(建议直接复制函数申明)

返回值类型  函数名(类型1 形参名1,类型2 行参名2)

{

//函数体

Return val;

}

3、 函数调用

函数名(实参);

函数传参的相关注意点:

值传递:普通变量,实参和形参单向值传递,原因是函数间不能共享同名变量

址传递:数组,函数间可以共享同一个数组,但数组长度会丢失,需要额外传递数组长度;

形参变量、函数内定义的变量都只属于它所在的函数。离开该函数就无法使用;

实参和行参之间是通过赋值的方式传递数据的(单向传递)

Return 作用是把返回数据存到一个公共数据,如果不写,读取时就会读取该区域原有的数据,得到一个垃圾数据。(即使不写return也有返回值,但值不确定)

传递数组的本质是传递数组的地址,因此无法传递数组的长度,需要额外传递(sizeof(arr)/sizeof(arr[0]))

设计函数的建议:

一个函数解决一个问题,降低错误率,提高可读性

尽量减少函数间的依赖程度(降低耦合度)

数据尽量由调用者提供,结果返回给调用者(提高通用性)

考虑非法参数,可以通过返回值的方式告诉调用者参数有误,也可以通过注释方式写明情况。(提高函数的健壮性)

C语言中的自定义函数相关推荐

  1. python文件定位函数_C语言中文件定位函数总结

    C语言中文件定位函数主要是:fseek, ftell, fsetpos, fgetpos. 先来讲前两个函数,这是最基本的定位函数: fseek函数:能把文件指针移动到文件任何位置,其原型是:int ...

  2. C语言:自定义函数中调用自定义函数的方法

    自定义函数中调用自定义函数 在我们编写C语言程序时,可以将要经常用到的或者有自己单独作用的那一部分代码独立成一个函数,不仅可以简化我们的程序,还可以使我们的程序更加可见话. 正文阿巴阿巴 方法一:直接 ...

  3. C语言中的回调函数(Callback Function)

    C语言中的回调函数(Callback Function) 1 定义和使用场合 回调函数是指 使用者自己定义一个函数,实现这个函数的程序内容,然后把这个函数(入口地址)作为参数传入别人(或系统)的函数中 ...

  4. C语言入门系列 - 自定义函数

    C语言入门系列 - 自定义函数 第一节 C 语言基础以及基本数据类型 第二节 C 语言运算符 第三节 C 语言控制语句 第四节 C 语言自定义函数 第五节 C 语言修饰变量的关键字 第六节 C 语言构 ...

  5. C语言:1027.自定义函数求最大公约数和最小公倍数

    C语言:1027.自定义函数求最大公约数和最小公倍数 题目描述: 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入. 解题思路: 1.利用辗转相 ...

  6. Entity Framework 6 Recipes 2nd Edition(10-5)译 - 在存储模型中使用自定义函数

    10-5. 在存储模型中使用自定义函数 问题 想在模型中使用自定义函数,而不是存储过程. 解决方案 假设我们数据库里有成员(members)和他们已经发送的信息(messages) 关系数据表,如Fi ...

  7. C语言中内联函数的作用 inline

    C语言中内联函数的作用 inline C语言中内联函数到底有什么作用? 试想一下,每当我们在假设就在主函数中调用另外一个函数的时候,那么这个函数就要入栈或者出栈,比如说下面的一个例子: 点击(此处)折 ...

  8. C语言中比较大小的函数模板,C语言中实现模板函数小结 : 不敢流泪

    --by boluor 2009/5/20 如果要写个函数支持多种数据类型,首先想到的就是C++的模板了,但是有时候只能用C语言,比如在linux内核开发中,为了减少代码量,或者是某面试官的要求- 考 ...

  9. C语言中文件定位函数总结

    C语言中文件定位函数主要是:fseek, ftell, fsetpos, fgetpos. 先来讲前两个函数,这是最基本的定位函数: fseek函数:能把文件指针移动到文件任何位置,其原型是:int ...

最新文章

  1. oracle某个表丢失,丢失一个控制文件并恢复数据库
  2. How Kafka’s Storage Internals Work
  3. C++继承中析构函数 构造函数的调用顺序以及虚析构函数
  4. Java消息队列--ActiveMq 初体验
  5. 印度不只有开挂火车,还有一开挂的数学家,凭一己之力单刷数学界
  6. 进程调度rr算法java实现_Java实现进程调度算法(二) RR(时间片轮转)
  7. php windows 网络流量,PHP系统流量分析的程序
  8. caffe之 Blob、Layer、Net
  9. php bin2hex 反向,PHP bin2hex()和pack()函数
  10. SQL2008如何建立数据库
  11. java运行环境搭建_java的运行环境
  12. 计算机毕业设计springboot+vue基本微信小程序的考试系统
  13. TWaver HTML5 高性能拓扑
  14. IntelliJ IDEA 必知技巧(持续更新)
  15. 微带线microstrip和带状线stripline
  16. placement delete
  17. 密码学——RSA加密算法
  18. 微信小程序api记载
  19. 微信公众号获取openid(java后端+html实现)
  20. 【机器学习】凸集、凸函数、凸优化、凸优化问题、非凸优化问题概念详解

热门文章

  1. STM32F446新建工程模板遇到的5个问题总结
  2. CentOS7安装教程,简单几步,小白也能上手装!
  3. switch c语言求奖金,超级新手,用switch写了个计算器程序,求指导
  4. 计算机科学与技术理工英语4,2021年7月国开(中央电大)本科《理工英语4》期末考试试题及答案...
  5. IDEA安装教程及插件推荐
  6. 查询 maven 依赖 的最新版本号
  7. 一步步教你创建自己的数字货币(代币)进行ICO
  8. Python安装库的常用方法
  9. 利用MSF打包加固APK对安卓手机进行控制
  10. 嵌入式系统基础及知识及接口技术总结