C語(yǔ)言實(shí)現(xiàn)多文件調(diào)用函數(shù) c語(yǔ)言如何實(shí)現(xiàn)多文件編程

C語(yǔ)言中 多個(gè)源文件之間函數(shù)如何調(diào)用

首先要建立一個(gè)頭文件,以.h保存

成都創(chuàng)新互聯(lián)公司制作網(wǎng)站網(wǎng)頁(yè)找三站合一網(wǎng)站制作公司,專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)站設(shè)計(jì),企業(yè)網(wǎng)站搭建,網(wǎng)站開(kāi)發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為近千家服務(wù),成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)將一如既往的為我們的客戶(hù)提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣服務(wù)!

這樣

#include stdio.h

typedef struct {

char name[100][60];

char number[100][8];

int mon[100],day[100];

char sex[100];

double height[100];

}inf;

int input(inf *x ,int i);

int output(inf *y ,int h);

當(dāng)然要有個(gè)主函數(shù).

#include "inout.h"

int main(void)

{

int n;

inf id;

do{

printf("*********n");

scanf("%d",n);

}while(n100);

input(id,n);

output(id,n);

return(0);

}

然后 這個(gè)頭文件有兩個(gè)函數(shù).這兩個(gè)函數(shù),以.c的格式保存.

#include stdio.h

#include "inout.h"

int input(inf *x,int i)

{

........

}

#include stdio.h

#include "inout.h"

int output(inf *y ,int h)

{

....

}

主函數(shù)來(lái)負(fù)責(zé)調(diào)用,別的源文件.但是,要有一定要有個(gè)頭文件.

就相當(dāng)說(shuō), 站長(zhǎng)(主函數(shù))要控制各個(gè)列車(chē)(多個(gè)源文件).需要通過(guò)調(diào)度臺(tái)(頭文件)

這是我的理解,我也是剛學(xué).希望大家指正

編譯的時(shí)候,要分別編譯,先要把非主函數(shù)的源文件便宜成obj格式.

我的編譯器是:cl /c 源文件名.c (cygwin中是 gcc -c 源文件名.c)

最后和主函數(shù)結(jié)合.

cl main.c 源文件.obj

cygwin中是 gcc -o main main.c 源文件.o

不知道 我說(shuō)的夠不夠明白

C語(yǔ)言多文件函數(shù)調(diào)用問(wèn)題。。

在調(diào)用函數(shù)之前,編譯器需要知道調(diào)用的規(guī)則,即調(diào)用的參數(shù)、參數(shù)個(gè)數(shù)、返回值,以一個(gè)文件為單位。

比如在first.c中需要調(diào)用play1那么編譯器就需要買(mǎi)哦時(shí)play1的調(diào)用規(guī)則,所以一般用int play1();這樣的語(yǔ)句說(shuō)明一下,用extern也可以,由于main中不存在調(diào)用play2的語(yǔ)句,就不需要事先聲明了;

在second.c中由于play1之前編譯器已經(jīng)編譯過(guò)了play2,所以知道了play2的調(diào)用規(guī)則,就可以省略聲明語(yǔ)句。

象first.c中調(diào)用外部程序比較多時(shí),就將這些聲明語(yǔ)句另存成一個(gè).h文件,然后用include包含這個(gè).h文件就可正常調(diào)用了,例如#includestdio.h

C語(yǔ)言中 多個(gè)源文件之間函數(shù)如何調(diào)用問(wèn)題

題目明顯提示你沒(méi)有定義“add”呀,要求你查看“add”哦!再個(gè)你程序還是有問(wèn)題的吧,如果你把它放到不同的源文件中一起編譯連接的話(huà),還會(huì)出現(xiàn)重復(fù)定義的錯(cuò)誤吧。改正如下:

#includestdio.h

#includemalloc.h

struct add *wwe();

struct add

{

int xuehao;

};

main()

{

struct add *p1;

p1=wwe();

}

//被調(diào)函數(shù)332.c

#include stdio.h

#includemalloc.h

struct add *wwe() //此處你是定義一個(gè)名為wwe的函數(shù),沒(méi)有參數(shù),返回值類(lèi)型是:struct add*

{

struct add *p1;

p1=(struct add *)malloc(sizeof(struct add)); /*此處“extern”可以不要吧,一般他是用來(lái)聲明用的,*/

return p1; //此處要返回一個(gè)值,沒(méi)有值是不可以的

}

c語(yǔ)言中,多文件編程,如何調(diào)用主文件外文件中的函數(shù)

如果該函數(shù)在主文件外的C語(yǔ)言頭文件中,那么用

#include "C語(yǔ)言頭文件名" 引用,然后就可以使用了(包含在同一項(xiàng)目下編譯)

如果沒(méi)有,在主文件使用

extern 改函數(shù)的定義;來(lái)聲明一下就可以使用了

例如

extern int foo(int bar);

int main(int argc,char **argv)

{

foo(1);

...

return 0;

}

當(dāng)前標(biāo)題:C語(yǔ)言實(shí)現(xiàn)多文件調(diào)用函數(shù) c語(yǔ)言如何實(shí)現(xiàn)多文件編程
分享鏈接:http://muchs.cn/article0/doeocio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)品牌網(wǎng)站設(shè)計(jì)、關(guān)鍵詞優(yōu)化、企業(yè)建站、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)