A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


        1. 概念
                所谓模块化编程(多文件开发),就是多文件(.c文件)编程,一个.c 文件和一个.h文件可以被称为一个模块。把功能相似的函数封装在不同的文件中

        2.以下场景中会使用头文件
                2.1 通过头文件来调用库函数功能
                        在很多场合,源代码不便向用户公布,只需要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口说明来调用库功能能,而不必关心接口是怎样实现的

                2.2 多文件编译
                        将稍大的项目分成几个文件实现,通过头文件将其他几个文件的函数声明引入到当前文件

                2.3 头文件能将强类型检查安全
                        如果某个接口被实现或被使用时,其他方式与头文件的声明不一致,编译器就会报错,这一简单的规则能大大减轻程序员调试、改错的负担
        3. 实现
                .c         C语言的源文件
                .h  头文件
                        a.方法的声明 但是不能实现
                        b.声明变量
                        c.声明结构体

        4.好处
                a.用的时候,只需包含.h文件,对外隐藏源文件的实现
                b.团队的分工和写作
                c.可以把功能细化分若干个模块

        5.多文件开发的实现和注意事项

                5.1 实现举例
                实现简单计算器
                a) 头文件Calculator.h内容
               
  1. #ifndef Day07_Calculator_h
  2.                         #define Day07_Calculator_h

  3.                         //return a + b
  4.                         int add(int a, int b);
  5.                         //return a - b
  6.                         int sub(int a, int b);
  7.                         //return a * b
  8.                         int mul(int a, int b);
  9.                         //return a / b
  10.                         int divd(int a, int b);
  11.                         //return a % b
  12.                         int rem(int a, int b);
  13.                         #endif
复制代码


                b) Calculator.c 内容
  1.                         #include <stdio.h>
  2.                         int add(int a, int b){
  3.                             return a + b;
  4.                         }
  5.                         int sub(int a, int b){
  6.                             return a - b;
  7.                         }
  8.                         int mul(int a, int b){
  9.                             return a * b;
  10.                         }
  11.                         int divd(int a, int b){
  12.                             return a / b;
  13.                         }
  14.                         int rem(int a, int b){
  15.                             printf("hhhh");
  16.                             return a % b;
  17.                         }
复制代码




                c) 主调函数main.c 里面的内容
  1.                 printf("result = %d\n", rem(5, 2));
复制代码

                d) 打印结果: result = 7;

                5.2 注意事项
                        a.头文件中可以和C程序一样引用其他头文件,可以写预处理块,但不要写具体语句
                        b.可以声明函数,但不可以定义函数
                        c.可以声明变量,但是不可以定义变量
                        d.可以"定义"一个宏函数。注意,宏函数很像函数,但却不是函数,其实还是一个声明
                        e.结构的定义,自定义数据类型一般也放在头文件中
                        f.多文件编程时,只能有一个文件包含main函数,因为一个工程只能有一个入口函数,把包含main函数的文件称为主文件
                        g.为了更好的组织各个文件,一般情况下,.c文件对应一个.h文件,并且文件名要相同
                        h.头文件要租售幂等型原则,即可以多次包含相同的头文件,但效果与只包含依次相同
                        i.防止重复包含的措施,宏判断

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马