C学习记录5——函数
一、函数概述
1.函数分类
- 系统函数(库函数)
- 用户定义函数
2.作用
- 省去重复代码编写,降低重复率
- 让程序更加模块化,利于阅读修改完善
3.函数调用
头文件、函数名、功能、参数、返回值
eg:产生随机数
导入头文件 <time.h>、 <stdlib.h>
time(NULL); 获取当前系统时间(相当于long类型,单位毫秒)
srand((unsigned int) seed);设置rand()的随机数种子,若每次seed相等,则rand()产生随机数相等
rand(); 返回一个随机数
rand()%500+1500,1500到2000范围的随机数
#include <time.h>
#include <stdlib.h>
int main()
{
srand((unsigned int)time(NULL)); //强制类型转换
int num = rand()%10; //0-9的随机数
}
二、函数的定义
1.函数定义的一般格式
返回值类型 函数名(参数列表)
{
代码体
return 返回值(可为表达式,自动转换为返回值类型);
}
- 若不需要返回值,类型写void ,最后写
return;
或不写此句 - 参数为形式参数,可设置默认值,一个默认参数之后的参数都必须有默认值,函数声明有默认参数,实现就不能有。
- 中括号{}内为函数体
- 到return时函数停止
三、函数的调用
1.main()中
函数名(实参列表);
- 实参可为常量,表达式,有确定值传递给形参
- 调用结束后函数会在栈区自动销毁
- 形参不影响实参的值(值传递)
2.无参函数的调用
函数名(); 即可
四、函数的声明
若函数在主函数之前定义,则不必声明,否则需声明,再调用。可声明其他文件中的函数再调用。
形式:extern 返回值类型 函数名(参数列表);
extern可省略,参数的声明可只写参数类型,不写或重写参数名
五、main与exit函数
exit(); 终止程序执行,()内写整数(类似return的返回值)
main中exit与return结果相同,但子函数中return终止函数,exit终止程序
六、多文件(分文件)编程
- 函数声明放于头文件中,在主函数中包含相应的头文件,源文件中定义函数
- 防止头文件重复包含(分文件可能把同一头文件include多次,或头文件嵌套包含)
避免方式:
1.#pragma once (只能用于windows)
2.如下
#ifndef __文件名_H__
#define __文件名大写字母_H__
声明语句
#endif