2012-11-17 138 views
0

我需要將file_1.c包含到main.c中。在file_1.c中,我目前有多個功能。如果我想在main.c中調用這些函數,我需要做什麼?我在主程序中有#include「file_1.c」。#包括其他C程序

+4

* 「我需要包括file_1.c到main.c中」 *不,你不。這就是* [鏈接](http://en.wikipedia.org/wiki/Linker_(計算))*的用途。 –

+0

什麼操作系統,什麼編譯器? –

+0

我正在使用Ubuntu。我只是覺得我不完全理解#include發生了什麼。基本上,我想要在我的主程序中調用另一個C程序的函數。 – iHubble

回答

4

使用通過使頭文件

#include"file_1.h"

標準的做法,你將不得不與main.c一起編譯這個"file_1.c",使一個可執行 因爲函數調用需要在運行時間。

試試這個:

創建一個頭文件file_1.h

#ifndef _FILE_H 
#define _FILE_H 

void foo(int); 
#endif 

給予的功能和結構的定義(如果有的話)或任何全局變量的所有declaraion

然後file_1.c將包含實際功能定義

//file_1.c 

    #include "file_1.h" 
    #include <stdio.h> 
    void foo(int x) 
    { 
     printf("%d\t",x); 
    } 

//main.c 
    #include "file_1.h" 

    int main() 
    { 
    int x=10; 
    foo(x); 
    return 0; 
    } 

包括兩個頭文件file_1.hmain.cfile_1.c)的c文件

gcc

gcc -Wall main.c file_1.c -o myexe.out

+4

你*可以*,你只是不想。 –

+0

謝謝..我現在更正了我的答案 – Omkant

+0

請問「_FILE_H」是什麼意思? – iHubble

2

爲什麼你認爲你需要這樣做?

通常情況下,您會將file_1.c中函數的聲明添加到file_1.h中,並將其包含在main.c中。

當您鏈接程序時,您只需要在命令行中同時包含main.c和file_1.c(其中包括函數的定義)。