标签:出现 必须 containe 调用 ini 位置 get 完全 sign
函数的概念
函数是c语言的功能单位,实现一个功能可以封装某一个函数来实现
定义函数的时候一切以功能为目的,根据功能去定函数的参数和返回值
函数的分类
从定义角度分类(即函数是谁实现的)
库函数(c库实现的)
自定义函数(程序员自己实现的函数)
系统调用(操作系统实现的函数)
从参数角度分类
有参函数
函数有形参,可以是一个,或者多个,参数的类型随便
完全取决于函数的功能
int fun (int a,float b,double c)
{
}
int max(int x,int y)
{
}
无参函数
函数没有参数,在形参列表的位置写个void 或什么都不写
int fun (void)
{
}
int fun()
{
}
从返回值角度分类
有返回值的函数
在定义函数的时候,必须带着返回值类型,在函数体里,必须有return
如果没有返回值类型,默认返回整型
char fun()// 定义一个返回字符数据的函数
{
char b = ‘a’;
return b ;
}
fun ()
{
return 1;
} 如果把函数的返回值类型省略了,默认返回整型
注意:在定义函数的时候,函数的返回值类型,到底是什么类型的,取决于函数的功能
没返回值的函数
在定义函数的时候,函数名字前面加void
void fun(形参表)
{
}
在函数里不需要 return
如果想结束函数,返回到被调用的地方,return;什么都不返回就可以了
函数的定义
函数的定义是 即函数的实现
函数的定义方法
返回值类型 函数名字(形参列表)
{
//函数体,函数的功能在函数体里实现;
}
注意: 函数必须带类型,而且以逗号隔开
函数的定义不能嵌套,即不能再一个函数体内定义另外一个函数。 所有的函数都是平行结构
再一个程序中,函数只能定义一次,也就是不能出现函数重名的现象
函数的声明
概念
对已经定义的函数,进行说明
函数的声明可以声明多次。
为什么要声明
有些情况下。如果不对函数进行声明,编译器再编译的时候,可能不认识这个函数。
因为编译器再编译的c程序的时候,从上往下编译的
声明的方法
什么时候需要声明
主调函数和被调函数再同一个.c文件中的时候
被调函数再上,主调函数在下 这时候就不需要声明
被调函数在下,主调函数在上,这时候就需要在主调函数中声明被调函数;
直接声明法
将被调函数的第一行拷贝过去,后面加分号
举例
void fun(void);
int main()
{
fun();
}
void fun (void)
{
printf("hello world\n");
}
间接声明法
将函数的声明放在头文件中,.c程序包含头文件即可
举例
在a.c文件中编译这个
#include " a.h"
int main()
{
fun();
}
void fun(void)
{
printf("hello world\n");
}
在a.h文件中编译这个
extern void fun(void)
主调函数和被调函数不在同一个.c文件中的时候
一定要声明
声明的方法
直接声明法
将被调用的函数的第一行拷贝过去,后面加分号,前面加extern
间接声明法
将函数的声明放在头文件中,.c程序包含头文件即可
注意头文件 后缀为.h文件
函数的调用
函数的调用方法
变量 = 函数名(实参列表);//函数带返回值的前提下
函数名(实参列表);//不带返回值 的
有返回值的,根据返回值的类型,需要在主调函数中定义一个对应类型的变量接受返回值
举例
int max(int x,int y)// x,y是形参 是个变量
{
}
int main()
{
int num;//需要定义一个num 接收max函数 的返回值
num = max(4,8);//4和8就是实参
}
没有返回值的函数,不需要接受返回值
举例
void fun(void)
{
printf("hello world\n");
}
int main ()
{
fun();
}
有无形参
函数名(实参列表);//带形参的函数 需要传实参
函数名();//没有形参的 可以直接调用
注意:实参可以是常量,可以是变量,或者是表达式
形参是变量,是被调函数的局部变量
函数的总结
定义函数的时候,关于函数的参数和返回值是什么情况,完全取决于函数的功能
使用函数的好处
定义一次,可以多次调用,减少代码的冗余度
使咱们代码,模块化更好,方便调式程序,而且阅读方便
打字游戏思路
随机函数
srand((unsigned)time(NULL)); 以当前时间为种子,设置随机种子
ch = rand()
注意: rand()函数,每调用一次,产生一个随机数字
rand()%26 产生0~25中随机数 rand()%26+‘a‘ 随机产生一个字母
linux 获得键值函数
ch = mygetch();//无需按下回车,可直接获得键盘上按下的键值
时间函数
start_time = time(NULL);
end_time = time(NULL);
//可以返回系统当前时间,以秒为单位
window下
头文件需要 #include< conio.h >
ch = getch();
linux
system("clear");//清空屏幕
windows
#include< windows.h >
system("cls");//清空屏幕
c语言获取程序运行时间
所需头文件 time.h
所需函数clock
函数介绍
用于获取程序启动时间到这次调用clock函数的CPU占用时间
用于衡量秒的单位,1000也就是千分之一秒,也就是当过了一毫秒clock会自动增加1,着也是为什么在计算完之后要除以1000,换算成毫秒
用法 先定义两个 clock_t start,finish; 变量,用于存取开始的时间和结束的时间
在定义一个 double time; //用于存储程序执行的时间
你想知道程序哪个部分运行的时间
在这个程序的首行写 start = clock(); 获取程序启动的时间
在这个程序的尾行写 finish = clock();获取程序结束的时间
时间差 time = (double)(finish-start)/CLOCK_PER_SEC //获取程序执行的时间
clock会把这个值并根据宏定义的CLOCKS_PER_SEC 来进行毫秒单位转换,假如clock_t是1000,那么CLOCK_PER_SEC也是1000,clock就会返回给你1毫秒
因为 clock_t是长整型long,返回的是整型,所以我们需要进行强制类型转换
exit(0) 正常退出程序 exit(1)和exit(-1) 异常退出程序
标签:出现 必须 containe 调用 ini 位置 get 完全 sign
原文地址:https://www.cnblogs.com/fengzi759/p/11618703.html