zoukankan      html  css  js  c++  java
  • C语言调用另一个文件的方法

    当一个项目比较大之后,我们希望分模块管理,这个时候就需要把一部分方法放在独立的文件中。

    在main方法中如何引用这些文件呢?

    一、gcc

    比如我有一个function.c文件,里面包含了我的函数体

    #include "function.h"
    
    int add(int a,int b){
        return a+b;
    }

    然后我把它抽象到一个function.h文件中

    #include<stdio.h>
    
    int add(int a,int b);

    在main.c中就可以这样写

    #include "function.h"
    #include<stdio.h>
    
    int main(){
        int a=1,b=2;
        int c=add(a,b);
        printf("c=%d
    ",c);
        return 0;
    }

    编译main.c

    gcc main.c function.c -o main
    ./main

     二、make和makefile

    如果我们项目中有很多文件需要编译,用前面的方式可能会累死,linux提供了make命令帮我们编译大型项目,不过需要我们提供一个配置文件makefile

    比如上面的项目,makefile大概这么写

    1 all:main
    2 main :main.c function.c
    3     gcc -o main book1.c function.c
    4 clean:
    5     rm -f main

    第一行:需要编译的目标

    第二行:目标依赖的源文件

    第三行:编译命令,必须以tab开头

    第四行:清理

    第五行:清理命令

    makefile有宏变量可以用,可以简化Makefile的书写,比如

    $@ : 用在生成规则中,表示当前目标
    $< :  用在生成规则中,表示当前目标的第一个依赖目标
    $^ :  用在生成规则中,表示当前目标的所有依赖目标

    那上面的Makefile可以简化为

    all:main
    main :main.c function.c
        gcc -o $@ $^
    clean:
        rm -f main
  • 相关阅读:
    HDU4513 吉哥系列故事——完美队形II Manacher算法
    POJ3974 Palindrome Manacher算法
    POJ1674 Sorting by Swapping 置换群
    100个著名初等数学问题[转载]
    POJ1026 Cipher 置换群
    FOJ1977 Pandora adventure 插头DP
    HDU1964 Pipes 插头DP
    POJ1286 Necklace of Beads polya计数
    Manacher算法O(n)回文子串算法[转载]
    POJ3270 Cow Sorting 置换群
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/14913452.html
Copyright © 2011-2022 走看看