• 函数


    C语言中的函数

    函数的由来:
    程序 = 数据结构 + 算法
    C程序 = 数据 + 函数
    函数用来定义算法

    函数的意义

    模块化程序设计

    面向过程的程序设计

    • 面向过程是一种以过程为中心的编程思想
    • 首先将复杂的问题分解为一个个容易解决的问题
    • 分解过后的问题可以按照步骤一步步完成
    • 函数是面向过程在C语言中的体现
    • 解决问题的每个步骤可以用函数来实现

    声明和定义

    • 声明的意义在于告诉编译器程序单元的存在
    • 定义则明确指示程序单元的意义
    • C语言中通过extern进行程序单元的声明
    • 一些程序单元在声明时可以省略extern

    严格意义上的声明和定义并不相同

    例子1:声明和定义不同
    main.c

    #include<stdio.h>
    #include<malloc.h>
    
    extern int g_var;
    extern struct Test;
    
    int main()
    {
    	struct Test* p = NULL; // (struct Test*)malloc(sizeof(struc Test)); // error
    	printf("p = %p
    ",p);
    	free(p);
    	return 0;
    }
    
    

    global.c

    int g_var;
    struct Test
    {
    	int x;
    	int y;
    };
    

    若struct Test* p = (struct Test*)malloc(sizeof(struct Test));会出现编译错误,不能依赖文件的编译顺序,当先编译main.c时,知识告诉编译器存在该结构体,当编译sizeof(struct Test)时,编译器不能从其他文件获取它的类型大小信息

    小结

    • 函数是面向过程思想在C语言中的体现
    • 面向过程是由上到下分解问题的设计方法
    • 程序中的定义和声明完全不同
    • C语言中通过extern对程序单元进行声明
  • 相关阅读:
    一本通1559跳跳棋
    一本通1558聚会
    一本通1555【例 4】次小生成树
    P1880 [NOI1995]石子合并
    P2066 机器分配
    P2073 送花
    P1886 滑动窗口
    P1637 三元上升子序列
    P1533 可怜的狗狗
    P1631 序列合并
  • 原文地址:https://www.cnblogs.com/yanyun888/p/9213287.html
Copyright © 2020-2023  润新知