C语言函数
2020-12-13 16:17
标签:出现 必须 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 ch = getch(); linux system("clear");//清空屏幕 windows #include 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) 异常退出程序 C语言函数 标签:出现 必须 containe 调用 ini 位置 get 完全 sign 原文地址:https://www.cnblogs.com/fengzi759/p/11618703.html