C语言基础7 - 函数

本文概述了函数在编程中的重要性,包括其概念、分类(系统函数与自定义函数)、定义格式、参数传递、返回值处理以及声明技巧。还讨论了如何处理不同情况下的函数调用和返回值策略,以及API接口和库文件的使用。
摘要由CSDN通过智能技术生成

1 函数介绍

函数:function

一段独立的具有一定功能的程序段

函数作用:使代码模块化,可以重复调用

控制程序的异常范围

函数三要素:

功能:函数的作用

参数:函数的接口

返回值:函数的结果或状态

 abs(int)  整型数绝对值

 fabs(double) 浮点型数绝对值

2 函数分类

1.系统函数

系统库函数--操作系统提供的函数,使用man 3手册

Open read write close

系统调用函数---内核提供的函数 使用man 2手册

Fopen fread fwrite fclose scanf printf

2.自定义函数

学习函数的重点;功能,参数,返回值

3 函数定义格式

存储类型 数据类型 函数名(数据类型 变量名。。。)

函数体;

存储类型:

1.省略不写

2.static 静态函数

3.外部函数

数据类型

基本数据类型:char ---double

构造数据类型不能是数组可以是结构体,联合体

特殊数据类型

任意类型的指针

函数名:见名知意

1.遵循c语言命名规范

2.行业习惯

3.公司规范

形参

()形参可以没有,写void或不写 int getchar(void)

形式参数可以有一个,可以有多个

Int abs(int num)

多个形参用逗号隔开int main(int argc,const char *argv【】)

形参--本质上是定义一个局部变量

{}花括号不能省略,return语句在普通函数中为结束函数,在 main函数中为程序结束

当函数返回值为void类型时,return语句可以不写或return;

当函数返回值为其他数据类型时,return值的数据类型必须与函数数据类型一致。

return结果值必须与函数的数据类型保持一致。

4 函数调用:

1.函数无返回值时

函数名(实参);

2.函数有返回值时:

函数名(实参);

printf(“asdaf”)

返回值=函数名(实参);

Ch=getchar();

形参:形式参数,函数定义时使用,定义一个变量,没有具体的值

实参:实际参数,函数调用时使用,具有实际意义的值,可以是一个变量名,具体的值,表达式

实参的数据类型必须和形参保持一致。

数组在传参时大小不用赋值,会退化为指针

函数传参--作用:形参将实参的值进行拷贝

5 函数的声明

--implicit declaration of function  报错warnning   函数未声明,解决方案

1.将函数定义在调用之前

2.将函数进行声明

函数的声明格式

存储类型 数据类型 函数名(数据类型 变量名…);

函数声明时变量名可以不写,但是数据类型不能省略,数据为 int/char *;

函数参数

考虑函数的性行参如何设计

函数的行参是将实参的值进行拷贝,形参和实参是独立的存储

函数传参传值

函数的返回值可以带出函数结果,当结果与状态冲突时,用指针带出表示结果,返回值为状态。

6 其他

提交API接口

 .so文件    动态库

 .a文件      静态库

工程里.c文件是函数定义,.h文件是函数声明

双引号括起来的头文件一般是自己写的,尖括号是系统库的

 .h文件里,公共头文件,构造数据类型,函数声明

返回值为指针的函数为指针函数,

指向函数的指针成为函数指针,函数指针的用法

1.调用函数

2.回调函数---函数指针做形参

7 总结:

1.当需要把函数外值传到函数内部时,传值,传地址都行;

2.如果需要把函数内部的值带出到函数外部,需要传地址,并且使用*操作地址,操作外部值;

或者定义静态变量

3.当不需要传入到函数内部,也不带出去,不传参数;

4.函数没有返回值时,返回是垃圾值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值