c語言能不能在檔案中寫函式,然後再另檔案中呼叫

2021-04-17 21:09:06 字數 4682 閱讀 7485

1樓:匿名使用者

當然可以啦。

舉個例子吧:兩個檔案 main.c function.c我們在function.c 中寫一個函回數 func();

與此同時,我們需要寫一個.h檔案來宣告這個答函式,即function.h

// 以下是function.h 的內容

#ifndef __function_h__#define __function_h__void func();

#endif

// 以下是function.c 的內容

#include "function.h"

void func()

這樣一來,我們想要在另外一個檔案,也就是main.c 中呼叫這個函式的時候,只需要包含它對應的標頭檔案,就可以直接呼叫了。

// 以下是main.c 的內容

#include "stdio.h"

#include "function.h"

int main()

2樓:龍菲善雁

可以,把檔案寫在一個工程裡面,

一個主函式,呼叫,

一個檔案寫函式,函式宣告

寫到一個標頭檔案,

然後把,標頭檔案

放在主函式上面

就可以呼叫,

c語言能不能在一個檔案中寫一個函式,然後再另一個檔案中呼叫?

3樓:匿名使用者

當然可以抄啦。

舉個例子吧:兩襲

個檔案 main.c function.c我們在function.c 中寫一個函式 func();

與此同時,我們需要寫一個.h檔案來宣告這個函式,即function.h

// 以下是function.h 的內容

#ifndef __function_h__#define __function_h__void func();

#endif

// 以下是function.c 的內容

#include "function.h"

void func()

這樣一來,我們想要在另外一個檔案,也就是main.c 中呼叫這個函式的時候,只需要包含它對應的標頭檔案,就可以直接呼叫了。

// 以下是main.c 的內容

#include "stdio.h"

#include "function.h"

int main()

4樓:匿名使用者

可以的,用

#include "1.h"

注意要用雙引號,不能用尖括號

5樓:匿名使用者

應該可以的吧,

#include<1.c>

#include<1.h>

就可以咯,記得零基礎學演算法裡面就是這

樣的,把函式單個放在不同內的檔案裡,看容

起來很舒服的

額,看了書,lx說的果然沒錯,應該用""加上,這樣就是在當前目錄查詢而<>則是在那啥根目錄裡查詢的

6樓:靠那麼近幹嘛

可以的,通過標頭檔案的包含方式,或者直接包含的方式即可呼叫,即#include或者#include

7樓:匿名使用者

完全可以.你#include "1.h"就ok了.

記的在a.c裡用extern引用這個函式就ok

c語言中,是否可以呼叫其它檔案的函式?

8樓:小夏在深圳

可以的。

在c語言中,函式呼叫的方式有多種,在函式呼叫中還應該注意的一個問題是求值

回順序。答所謂求值順序是指對實參列表中各個引數是自左向右使用,還是自右向左使用。對此,各系統的規定不一定相同。

__cdecl呼叫規則就是c呼叫規則。按從右至左的順序壓引數入棧,由呼叫者把引數彈出棧。切記:對於傳送引數的記憶體棧是由呼叫者來維護的。

返回值在eax中因此,對於象printf這樣變引數的函式必須用這種規則。編譯器在編譯的時候對這種呼叫規則的函式生成修飾名的餓時候,僅在輸出函式名前加上一個下劃線字首,格式為_functionname。

擴充套件資料

示例:在vc6.0和c-free 5.0下執行以下**。

#include

int main()

執行結果:

8 7 6 7

可見vc 6.0是按照從右至左的順序求值。如果按照從左至右求值,結果應為:

9  10  9  8

9樓:凌亂心扉

可以呼叫。

一、從一個原始檔裡呼叫另一個原始檔的函式。在原始檔a1.c中呼叫a2.c 中的函式有兩種方法:

1、在a2.c中有完整的函式定義,在a1.c中新增一下要用到的函式原型(宣告)就可以了,例如:

在a2.c中:有函式void a2();。

在a1.c中:在檔案前頭增加一行:void a2();就可以了。

2、把a2.c中完整定義的函式的原型,寫到一個a2.h檔案中,然後在a1.c的檔案頭增加#include "a2.h"就可以了。

以上兩種方法,在a1.c中都可以正常的呼叫,就跟在a2.c中呼叫一樣。

其實函式預設是外部的,只要在其他檔案中宣告就能使用;但是注意如果在前面加上static,就只能在本檔案中使用了,不能再被其他的檔案呼叫。

二、編寫標頭檔案:

1、一個.h檔案要 對應有一個.c檔案,這樣連結器就可以呼叫這個檔案裡的函式。比如a.h 和 a.c。

在.h檔案中:

#ifndef __a_h_

#define __a_h_

#include

void trans2(double b) ;

double trans1() ;

#endif

2、把相應的函式定義寫在.c檔案中。這裡要強調一點:

要加上#include ".h",這個一般作為一種工程規範。因為如果.

c檔案中的函式也需要呼叫同個.c中的其它函式,那麼這個.

c往往會include對應的.h,這樣就不需要為宣告和呼叫順序而發愁了。比如標頭檔案裡進行了變數的宣告,這個時候對應的.c檔案是一定要加上這個標頭檔案的。

3、再在其他的main.c檔案開頭新增#include "a.h"。

10樓:鄭穆寒

先在當前目錄下建立.c檔案 即你的main函式 如何建立.h檔案 注意不能有main函式。如何在主檔案里加#include "xx.h" 即可

11樓:勵志作大神

建立復一個project,建立第一個檔案c1.c,在其中制寫出函式,再在第二個檔案c2.c裡在要呼叫的c1中的函式前加上extern使函式成為外部函式eg:

extern int funa(int); ,這樣就可以在c2.c裡呼叫c1的那個函式了。

12樓:匿名使用者

c語言可以在程式中呼叫其他檔案中的函式。

在大型的程式軟體開發中,為了代

回碼的可讀性,或答多人同時進行**開發,可以各寫自己的原始檔,然後,在編譯時,將多個原始檔連結到一起,就可以形成最終的目標程式。

各程式中的函式可以是共用的,參考**如下:

//a.c

#include

int funa( int n )

//main.c

#include

extern int funa(int); //宣告funa為外部函式

void main()

在linux下,編譯方法為:gcc main.c a.c -o test

在windows下,可建立一個工程,將兩個檔案新增到該工程中,編譯,執行即可

13樓:匿名使用者

可以 檔案頭宣告一下

14樓:闊海的賬戶

可以的。但在呼叫前必須定義該函式的宣告。可以放在公共的標頭檔案中宣告,然後直接include,也可以直接說明。

這樣編譯能通過,只要能夠連線到函式的實現,也就是另一個檔案的編譯檔案obj,就可以執行了。

15樓:芋頭家的小修修

可以 在開始的地方 #include《檔名.c> 就可以了

c語言 如何在一個檔案中呼叫另一個檔案的函式 用標頭檔案

16樓:匿名使用者

test.h

#include

int func(int x);

func.c

int func(int x)

main.c

#include "test.h"

void main()

把以上三個檔案

du放到一個工程中,zhi編譯,就可以看到dao結果了。

c語言中能否在一個自定義函式中呼叫另一個自定義函式?

17樓:七班趙子龍

當然copy

可以!c語言程式的最基本的模組就是函式,

該程式規定:任意函式都可以呼叫其它任意一個函式,包括函式本身;

1、函式呼叫自己本身, 這種稱為遞迴;

通過遞迴,計算1+2+3+...+n值的**:

2、自定義函式呼叫其它自定義函式的例子:

這個例子就是主函式呼叫自定義函式fun2,然後fun2呼叫另一個自定義函式fun1;

c語言中檔案指標能不能作為引數傳遞

1.指標完全可以作為函式的引數進行傳遞,其實在c中,陣列作為引數傳遞,跟指標作為引數傳遞都很類似的,指標傳的是該指標指向的地址,而陣列引數則是將該陣列的首地址傳遞過去。2.檔案指標 在c語言中用一個指標變數指向一個檔案,這個指標稱為檔案指標。通過檔案指標就可對它所指的檔案進行各種操作。定義說明檔案指...

C6861能不能在廣州南站上車

c6861不能在廣州南站上車,只能在廣州站上車 不停靠南站 不可以,因為c6861廣州南根本不停靠,廣州站地址廣州市越秀區環市西路159號 站序站名到站時間出發時間停留時間 01 廣州 13 31 02 佛山西 13 51 13 53 2分鐘 03 獅山 14 00 14 01 1分鐘 04 獅山北...

用C語言編寫的程式,能不能直接在Linux下執行?

需要gcc命令將源 重新編譯,連線,形成二進位制檔案即可在linux下執行。你的問題問得模稜兩可的。按照我的理解有三個意思,1。在windows或mac系統下寫的可以正常編譯的c源 能不能再linux直接編譯執行。2,在windows或mac系統下編譯好的c程式可以不可以直接拿到linux下執行。3...