C语言——函数(20210701)
随机数
#include <time.h>
#include <stdlib.h>
srand ( ( size_t) time ( NULL ) )
int a = rand ( ) % 50 + 51
#include <stdlib.h>
int rand ( void ) ;
功能:返回一个随机数值
参数:无
返回值:随机数
函数
返回类型 函数名( 形式参数列表)
{
数据定义部分;
执行语句部分;
}
函数名 理论上是可以随意起名字,最好起的名字见名知意,应该让用户看到这个函数名字就知道这个函数的功能。注意,函数名的后面有个圆换号(),代表这个为函数,不是普通的变量名。 形参列表 在定义函数时指定的形参,在未出现函数调用时,它们并不占内存中的存储单元,因此称它们是形式参数或虚拟参数,简称形参,表示它们并不是实际存在的数据,所以,形参里的变量不能赋值。 返回值 函数的返回值是通过函数中的return语句获得的,return后面的值也可以是一个表达式。 函数的形参和实参
形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。 实参出现在主调函数中,进入被调函数后,实参也不能使用。 实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。 在调用函数时,编译系统临时给形参分配存储单元。调用结束后,形参单元被释放。 实参单元与形参单元是不同的单元。调用结束后,形参单元被释放,函数调用结束返回主调函数后则不能再使用该形参变量。实参单元仍保留并维持原值。因此,在执行一个被调用函数时,形参的值如果发生改变,并不会改变主调函数中实参的值。 函数的声明 如果使用用户自己定义的函数,而该函数与调用它的函数(即主调函数)不在同一文件中,或者函数定义的位置在主调函数之后,则必须在调用此函数之前对被调用的函数作声明。 所谓函数声明,就是在函数尚在未定义的情况下,事先将该函数的有关信息通知编译系统,相当于告诉编译器,函数在后面定义,以便使编译能正常进行。 注意:一个函数只能被定义一次,但可以声明多次。 main函数与exit函数 在main函数中调用exit和return结果是一样的,但在子函数中调用return只是代表子函数终止了,在子函数中调用exit,那么程序终止。
多文件(分文件)编程
分文件编程
把函数声明放在头文件xxx.h中,在主函数中包含相应头文件 在头文件对应的xxx.c中实现xxx.h声明的函数 防止头文件重复包含 当一个项目比较大时,往往都是分文件,这时候有可能不小心把同一个头文件 include 多次,或者头文件嵌套包含。 为了避免同一个文件被include多次,C/C++中有两种方式,一种是 #ifndef 方式,一种是 #pragma once 方式。
#ifndef __SOMEFILE_H__
#define __SOMEFILE_H__
#endif
#pragma once