c语言函数基础

C语言是面向过程的语言,每个C程序都至少有一个函数,即主函数main(),所有简单的程序都可以定义其他额外的函数。

 函数就是一个功能或者某个完成某个功能的模块。

一,函数的分类

自定义函数:

返回类型   函数名 (形参)

{

       函数体;//模块的过程

        return 返回值表达式;

}

  • 返回类型:一个函数可以返回一个值。return_type是函数返回的值的数据类型。有些函数所执行所需的操作后不需要返回值,在这种情况下,return_type是关键字  void。
  • 函数名:这是函数的实际名称,函数名和参数列表一起构成函数签名。
  • 参数:参数就像占位符。当函数被调用时,你向参数传递一个值,这个值被称为实际参数。参数列表包括参数的类型,顺序,数量。参数是可选的,也就是说,函数可能不包含参数
  • 函数体:包含一组定义函数执行任务的语句。

系统函数:由系统提供的功能(模块)printf

二,调用函数:执行"一次"函数的过程

函数名();     注:函数必须被定义   *函数表达式

注:调用函数时注意,1,函数必须存在 2,形参必须匹配

创建一个冒泡排序的功能的函数

将bubble函数声明在bubble.h文件

在work.c中调用bubble函数

通过编译 bubble.c 和work.c 得出结论

三,函数声明: 函数声明回告诉编译器函数名称及如何调用函数。函数的实际主题可以单独定义。

函数的声明包括以下几个部分:   返回类型    名称   (形参);

作用域:能被引用的范围(全局,局部)
    1、全局: 在函数外定义的变量
     作用域:从定义开始,到本文件结束。
    2、局部:在函数内定义的变量(形参变量,函数内定义变量)
     作用域:只在函数内
 注:在同一作用域内不允许出现同名现象;
  
 生存周期:空间从分配开始,到运行结束。
    1、“栈”区(动态区):当函数运行开始,空间被申请,当函数运行结束,空间被释放。
    定义变量: [auto] [有无符号] 类型 变量名; (只能在函数内)    ; 形参变量
    
    2、静态区:程序运行开始时空间被申请,程序运行结束时,空间被释放。
    全局变量。 静态局部变量 ; static 类型 变量名
    3、堆区(程序员区)

  头文件:就是存放模块提供函数原型或类型声明
    后缀名: .h
    1、外部声明:告诉编译器此类型来自非本文件(外文件)
        extern 声明;
           函数: extern 函数原型;
            变量:extern 变量原型; extern int a;

注   :   C 语言规定,如果在定义函数时省略 extern,则默认为外部函数。

在需要调用此函数的其他文件中,需要对此函数作声明(不要忘记,即使在本文件中调用一个函数,也要用函数原型来声明)。在对此函数作声明时,要加关键字 extern,表示该函数是在其他文件中定义的外部函数。

    2、引用头文件:#include<>只有会去系统目录下查找
                   #include""会去指定路径下查找,如果查找不到,则会去系统下

递归:直接或者间接调用自身函数

根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。

如果一个函数只能被本文件中其他函数所调用,它称为内部函数。在定义内部函数时,在函数名和函数类型的前面加 static

可以使函数的作用域只局限于所在文件。即使在不同的文件中有同名的内部函数,也互不干扰。提高了程序的可靠性。

猜你喜欢

转载自blog.csdn.net/qq_39059405/article/details/81103535