• Linuxc


    多文件使用,一起编译

    定义max.h

    int max(int a,int b);
    

    定义max.c

    #include "max.h"
    int max(int a,int b)
    {
        if (a > b) {
            return a;
        } else {
            return b;
        }
    }
    

    定义主c文件

    #include <stdio.h>
    #include "max.h"
    int main()
    {
        int a1 = 22;
        int a2 = 33;
        int maxNum = max(a1,a2);
        printf("the max value is %d
    ",maxNum);
        return 0;
    }
    
    

    编译执行!

    root@jiqing-virtual-machine:~/cspace/les2# gcc max.c main.c -o main.out
    

    查看

    root@jiqing-virtual-machine:~/cspace/les2# ./main.out
    the max value is 33
    
    

    分别编译

    头文件的好处,一次编译,多次使用。
    只需要引入声明就可以了。

    root@jiqing-virtual-machine:~/cspace/les2# gcc max.o min.o main.c
    main.c: In function ‘main’:
    main.c:8:18: warning: implicit declaration of function ‘max’ [-Wimplicit-function-declaration]
         int maxNum = max(a1,a2);
                      ^
    main.c:9:18: warning: implicit declaration of function ‘min’ [-Wimplicit-function-declaration]
         int minNum = min(a1,a2);
                      ^
    
    

    没有声明,会报错。

    #include <stdio.h>
    //#include "max.h"
    //#include "min.h"
    int main()
    {
        int a1 = 22;
        int a2 = 33;
        int maxNum = max(a1,a2);
        int minNum = min(a1,a2);
        printf("the max value is %d
    ",maxNum);
        printf("the min value is %d
    ",minNum);
        return 0;
    }
    
    

    将注释的去掉就可以了。

    单个编译max.c,min.c

    root@jiqing-virtual-machine:~/cspace/les2# gcc -c max.c -o max.o
    root@jiqing-virtual-machine:~/cspace/les2# gcc -c min.c -o min.o
    
    

    编译成max.o和min.o之后,计算机就能够识别了。

    以后可以在多个c文件中使用。只需要引入头文件h就可以了。

    root@jiqing-virtual-machine:~/cspace/les2# gcc max.o min.o main.c -o main.out
    
    
    root@jiqing-virtual-machine:~/cspace/les2# ./main.out
    the max value is 33
    the min value is 22
    
  • 相关阅读:
    3配置
    1开机初始化配置
    shell <<EOF
    Sun SPARC Enterprise M5000 启动步骤
    CISCO MDS – Useful ‘Show’ Commands
    oracle 内存不足处理
    mysql 日志类型
    MySQL 学习
    抓取进程中包括其所有线程的iowait时间
    每天网络半小时(MAC数据包在哪里合并的)
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/8334729.html
Copyright © 2020-2023  润新知