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\n",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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM