C语言函数

本文详细介绍了C语言中的函数概念,包括标准库函数如time()和rand(),系统函数如system(),以及第三方库和自定义函数。强调了函数声明、定义、调用和参数传递的重要性,以及函数设计的准则,如单一职责原则和错误处理。
摘要由CSDN通过智能技术生成

C语言函数

函数:Function
一段具有某一项功能的代码集合,是C语言管理代码的最小单位
把代码封装成一个个函数,方便管理和调用代码

  1. 函数分类:
    ①标准库函数:
    C语言标准委员会以函数形式提供的一些基础功能,都被封装在libc.so库中,并且分在了不同的文件中,需要使用时只要把对应的头文件导入即可(例如stdio.h…),然后通过具体的函数名(参数) 即可完成调用

    #include <time.h>
    time_t time(time_t *tloc);
    

    功能:获取自1970-1-1 0:0:0 到调用时总共过了的秒数
    用法:time_t sec = time(NULL);

    #include <stdlib.h>
    int rand(void);
    

    功能:获取一个随机数
    注意:目前任何编程语言和系统都没有真正的随机数,C编译器是把从0~极大值范围的数值打乱后,存储到一块固定内存中,然后从里面取所谓的随机数

    void srand(unsigned int seed);
    

    功能:种随机种子,设置从随机数内存的某个位置开始取随机数,为了实现类似真随机的效果,seed位置一般使用time(NULL)来设置

    int system(const char *command);
    

    功能:执行系统命令command
    例如:system(“clear”);
    ②系统函数:
    是操作系统以函数形式提供的一些功能接口
    但是系统函数不是真正的函数
    ③第三方库函数:
    一些开源或收费的第三方代码
    GitHub
    md5
    JSON 序列化和反序列化
    glog 谷歌日志系统
    XML 配置文件解析程序
    ④自定义函数:
    为了更好地管理代码,减少代码冗余,把代码封装成自定义函数
    函数声明:
    函数声明的目的为了告诉其他的调用者,该函数的调用格式
    返回值类型 函数名(形参类型1 形参名,形参类型2 形参名,…);
    C语言中函数名一般全部小写,可以用下划线分隔
    如果不需要参数时,建议写void,不要空着
    如果没有返回值,就写void

  2. 函数定义:

    返回值类型 函数名(形参类型1 形参名,形参类型2 形参名,...)
    {
    	//  函数体
    	return [val];
    }
    
  3. 函数调用:

    函数名(实参1,实参2);
    

    注意:返回值会放在调用函数语句这里,应该用变量接收或者直接显示,否则再也拿不到
    使用函数需要注意函数的隐式声明:
    在函数调用前没有任何该函数的声明或定义,那么就会产生隐式声明
    要避免产生隐式声明,那么就需要在函数调用前有函数声明或函数定义
    注意:如果在函数调用前完成了函数的定义,那么函数声明可以省略

  4. 函数传参
    ①函数中定义的变量属于该函数,除了该函数就不能再被别的函数直接使用
    ②实参与形参之间是以赋值的方式进行传递数据的,并且是单向值传递
    ③return语句其实是把返回值数据放入公共区域内存中(调用者和被调用者都可以访问),调用者会从该区域获取返回值;如果不写return语句,该区域会是一个随机的垃圾数据,调用者也能拿到返回值但是无意义。
    ④数组作为函数的参数传递时,数组的长度会丢失,需要额外增加一个变量把数组的长度传递过去

    void func(int arr[],int len);
    int arr[10];
    func(arr,10)
    

    ⑤数组作为参数传递时,是"址传递",相当于调用者与函数共享数组

  5. 设计函数的准则
    ①一般一个函数最好不要超过50行,确保一个函数只负责完成一项功能,降低出错概率,提高可读性
    ②数据一般要由调用者提供,只把结果返回给调用者,确保函数的通用性
    ③考虑调用者提供的非法数据,可以先判断后使用,也可以通过注释或说明来写明情况,提高函数的健壮性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值