美文网首页
16 C多文件开发

16 C多文件开发

作者: 亨锅锅 | 来源:发表于2018-10-30 13:08 被阅读0次

1、多文件开发

1.1、新建ds.h文件

int sum(int num1, int num2);
int minus(int num1, int num2);

1.2、新建ds.c文件

int sum(int num1, int num2){
    return num1 + num2;
}
int minus(int num1, int num2){
    return num1 - num2;
}

1.3、新建main.c文件

#include <stdio.h>
#include "ds.h" // 导入大神编写的.h文件
// 本质就是将大神编写的.h文件中的代码拷贝过来

//#include "D:\WWW\ds.h"

int main()
{
    /*
     * 在企业开发中, 不可能将所有的代码都写到一个文件中
     * 这样会导致文件内容较多, 不利于我们阅读和后续维护
     * 而且在企业开发中大部分都是多人开发, 多人开发就是多个人一起写一个项目
     * 既然是多人开发, 所以也不可能多个人同时操作同一个文件
     * 所以在企业开发中, 都是多人同时操作多个不同的文件 --> 多文件开发
     *
     * 例如: 现在有两个员工
     * 一个是菜鸟, 一个是大神
     * 调用大神写好的代码
     * 编写主要的业务逻辑代码
     *
     * 在企业开发中如何进行多人开发
     * 一般情况下会将业务逻辑代码, 编写到.c文件中, 同时会将.c文件中需要暴露给外界使用的方式名称的声明写到.h文件中
     * 为什么编写了.c文件还需要编写一个.h文件, 原因很简单, 业务逻辑代码是你编写的, 那么函数的作用,形参你最了解, 所以应该由你来编写
     *
     * 注意:
     * 在企业开发中, 其它人不需要关系函数具体是如何实现的, 只需要关心如何使用这个函数即可
     * 所以函数的业务逻辑和声明都应该让同一个人来完成
     *
     * #include的作用:
     * 将后面指定文件中的内容拷贝到当前文件中
     * <>从系统的环境变量中去拷贝, 一般情况下只有用到系统函数才使用<>
     * ""从指定的路径中去拷贝, 一般情况下使用同事/自己编写的.h文件都用""
     */
    int res = sum(10, 20);
    printf("res = %i\n", res);
    int res2 = minus(10, 20);
    printf("res2 = %i\n", res2);
    return 0;
}

2、多文件开发中的static

2.1、新建ds.h文件

void test();

2.2、新建ds.c文件

//int num;
static int num;
void test(){
    printf("ds.c中的 num = %i\n", num);
}

2.3、新建main.c文件

#include <stdio.h>
#include "ds.h"

//int num;
//int num;
extern int num; // 声明一个num

int main()
{
    /*
     * static对全局变量的作用
     * 定义一个内部的全局变量,
     * 1.该变量只能在定义的文件中使用, 不能在其它文件中使用,
     * 2.并且该变量会独占一块内存空间
     *
     * 全局变量的特性:
     * 可以定义多个同名的全局变量, 多个同名的全局变量共享一块内存空间
     * 哪怕不是同一个文件中的同名全局变量, 也会共享同一块内存空间
     *
     * 问题:
     * 这样是不是会导致数据混乱
     *
     * 注意点:
     * 局部变量如果没有初始化, 里面存储的是垃圾数据
     * 全局变量如果没有初始会, 系统会自动初始化为0
     */
    num = 666;
    test();
    return 0;
}

3、多文件开发中的 static && extern

3.1、新建ds.h文件

extern int sum(int num1, int num2);
static int minus(int num1, int num2);

3.2、新建ds.c文件

extern int sum(int num1, int num2){
    return num1 + num2;
}
static int minus(int num1, int num2){
    return num1 - num2;
}

3.3、新建main.c文件

#include <stdio.h>
#include "ds.h"

int main()
{
    /*
     * extern和static对函数的作用
     * 1.如果利用extern修饰函数, 代表这是一个外部函数, 其它文件中也可以使用
     * 注意点: 默认情况下所有函数都是外部函数, 所有的函数都可以在其它文件中访问, 所以extern是一个废物
     *
     * 如果利用static修饰函数, 代表这事一个内部函数, 只能在当前文件中使用
     * 如果一些内部函数不想提供给外界使用, 那么就可以给函数添加一个static
     */
    int res = sum(10, 20);
    printf("res = %i\n", res);
    int res2 = minus(10, 20);
    printf("res2 = %i\n", res2);
    return 0;
}

相关文章

网友评论

      本文标题:16 C多文件开发

      本文链接:https://www.haomeiwen.com/subject/favnnftx.html