原创 写一个函数的步骤

2021-5-22 21:23 2130 12 12 分类: MCU/ 嵌入式
出现需要解决的问题
1.想形参-->原则是①实现功能需要什么样的数据②提取问题的可变量
2.想返回值-->原则是①函数外部是否需要函数的返回值②外部需要函数执行完后返回什么类型的值
3.想函数体代码
4.想优化-->目标通用性


函数 形参 返回值 函数声明 调用
格式 类型+标识符(具体显示看下方) int func(int a)函数定义的位置:
主函数上方:此时可以省略函数声明
主函数下方:此时需要在主函数上方添加函数声明(具体显示看下方)
当函数定义在主函数下方时,需要将函数在主函数上方声明,直接将函数头原样复制到主函数上面,声明语句后加 ; 将被调用函数的函数头复制到被调用处,处理参数和返回值,调用语句结束加 ;
特性 类型明确,形参列表逗号隔开 C 语言中一个函数如果希望正常返回一个值,必须要使用 return,一个函数只能返回一个值
程序中除了主函数,剩下的都叫子函数。子函数可以相互调用,主函数可以调用子函数。编写的子函数如果想要发挥作用,则必须在主函数中调用
功能 提供函数内部使用,外部数据进入函数的入口 函数内部的数据如果想发送到函数的外部,则必须要通过函数的返回值类型 告诉系统和使用者该函数可用 从调用处跳转到函数体内,运行完再回到被调用处,接着往下运行
设计原则 从问题的可变量思考实现函数功能需要什么样的数据 (1) 外部是否需要函数的返回值(2) 如果需要,则函数需要什么样的返回值希望函数运算后有什么样的结果
处理被调用函数的参数和返回值
补充 函数参数等价于已定义过的变量,可以直接在函数体内使用
函数声明的函数头必须和函数定义的函数头一模一样 不同的函数体内变量可以同名,但是同一个函数体内变量不能同名





格式具体显示 1. 参数类型是 void——直接删掉 void 2. 参数类型是非 void——根据形参列表依次传参 1. 返回值类型是 void——直接删掉 void 2. 返回值类型是非 void

函数声明: void func(void); 函数声明: void func(int a,char b,float c); eg: (1) 是否需要该函数的返回值

函数调用: void func(); 函数调用:依次给 func 函数传入整型数据(int a) ,字符数据(char b) ,实型数据(float c) 函数声明: void func(void); 不需要,则直接忽略


如果传参的类型不一致,不一定出现语法错误,但是容易导致程序无法得到预期效果 函数调用: func(); 如果需要,则对应处理


传参的方式:
(2) 处理方式


1. 给参数传递同类型的数据
①直接将函数整体作为返回值


2. 传入参数的数量必须和形参列表数量一致
eg:


3. 数据可以是常量,也可以是变量
函数声明: int func(void);


4. 函数传参时,如果是同类型的变量,可以直接传递变量名
函数调用: printf(“%d\n”,func());


eg:
②定义和返回值同类型的变量接收返回值


char x = ‘0’;
eg:


float y = 1.2;
函数声明: int func(void);


传参时: void func(5,x,y);
函数调用:




int ret;




ret = func();
printf(“%d\n”,ret);





文章评论0条评论)

登录后参与讨论
我要评论
0
12
关闭 站长推荐上一条 /2 下一条