『壹』 c語言外部函數的函數調用
1、在定義函數時,若在函數首部的最左端加關鍵字extern,則表示此函數是外部調用,可被其他文件調用,函數首部可以為
Extern int fun(int a,int b);
C語言規定,定義函數時省略了extern則隱含為外部函數,可被其他文件調用
2、在需要調用函數的文件中,用extern對函數聲明,表示該函數是在其他文件中定義的外部函數
『貳』 怎麼調用外部C語言文件
解決什麼了,你現在代碼的問題還很多。
file1.c中的內容:
#include<file2.c>//這樣你以後寫程序還會出錯。要建個h頭文件,把函數聲明放到裡面就行。
int A;
main()//沒類型可以運行嗎。用void main
{
int power(int);//這個聲明放到頭文件里
int b=3,a,c,d,m;
printf("enter the number a and its power m:\n");
scanf("%d,%d",&a,&m);//你輸入的不是A,是a.。。。
c=A*b;//c的值是0
printf("%d*%d=%d\n",A,b,c);//由於A是全局變數,值默認為0。
d=power(m);
printf("%d*%d=%d",A,m,d);
}
file2.c中的內容:
extern A;//類型要帶上,extern int A;
power(int n);
{
int i,y=1;
for(i=1;i<=n;i++)
y=A;
return(y);
}
file1.c中的內容:
#include<file2.c>
int A;
main()
{
int power(int);
int b=3,a,c,d,m;
printf("enter the number a and its power m:\n");
scanf("%d,%d",&a,&m);
c=A*b;
printf("%d*%d=%d\n",A,b,c);
d=power(m);
printf("%d*%d=%d",A,m,d);
}
file2.c中的內容:
extern A;
power(int n);
{
int i,y=1;
for(i=1;i<=n;i++)
y=A;
return(y);
}
『叄』 C語言中如何引用其它C源文件中的函數
在源文件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,就只能在本文件中使用了,不能再被其他的文件調用。
(3)外部引用c語言擴展閱讀:
1、一個.h文件要 對應有一個.c文件,這樣鏈接器就可以調用這個文件里的函數。比如a.h 和 a.c。
2、把相應的函數定義寫在.c文件中。這里要強調一點:要加上#include ".h",這個一般作為一種工程規范。因為如果.c文件中的函數也需要調用同個.c中的其它函數,那麼這個.c往往會include對應的.h。比如頭文件里進行了變數的聲明,這個時候對應的.c文件是一定要加上這個頭文件的。
3、再在其他的main.c文件開頭添加#include "a.h"。
『肆』 C語言中怎麼調用外部函數
1、外部函數extern時聲明這個函數為外部函數,本文件不做定義,只調用,編譯不會出錯,但不能運行(沒有函數實體)。如果想有運行結果就必須將函數實體包含進來,所以文件包含和extern是配合使用的。文件包含只需要包含.h就是實體的頭文件,但有些軟體貌似不能識別頭文件和c的關系,所以就只能包含.c文件。
2、也就是說外部函數extern只是個聲明,他告訴編譯器我用到了一個外部函數,但如果該文件沒有將函數實體包含進來,編譯器是找不到的,依然是不能運行的,所以extern只是個聲明,並沒有做任何事,只是這樣是沒用的。include是包含一個文件,就是類似於該文件復制到此處(只是說類似,其實是個查找路徑,讓編譯器去該路徑查找函數)。
『伍』 怎麼調用外部C語言文件
解決什麼了,你現在代碼的問題還很多。
file1.c中的內容:
#include<file2.c>//這樣你以後寫程序還會出錯。要建個h頭文件,把函數聲明放到裡面就行。
int
A;
main()//沒類型可以運行嗎。用void
main
{
int
power(int);//這個聲明放到頭文件里
int
b=3,a,c,d,m;
printf("enter
the
number
a
and
its
power
m:\n");
scanf("%d,%d",&a,&m);//你輸入的不是A,是a.。。。
c=A*b;//c的值是0
printf("%d*%d=%d\n",A,b,c);//由於A是全局變數,值默認為0。
d=power(m);
printf("%d*%d=%d",A,m,d);
}
file2.c中的內容:
extern
A;//類型要帶上,extern
int
A;
power(int
n);
{
int
i,y=1;
for(i=1;i<=n;i++)
y=A;
return(y);
}
file1.c中的內容:
#include<file2.c>
int
A;
main()
{
int
power(int);
int
b=3,a,c,d,m;
printf("enter
the
number
a
and
its
power
m:\n");
scanf("%d,%d",&a,&m);
c=A*b;
printf("%d*%d=%d\n",A,b,c);
d=power(m);
printf("%d*%d=%d",A,m,d);
}
file2.c中的內容:
extern
A;
power(int
n);
{
int
i,y=1;
for(i=1;i<=n;i++)
y=A;
return(y);
}
『陸』 C語言引用外部變數和函數的區別
所謂外部變數和函數,就是沒有寫在同一.c文件中的函數和變數,與同文件中的引用只是多在前面寫個extern描述後完全相同。
『柒』 C語言怎麼調用外部函數
在源.c文件中添加include「2.h」頭文件的引用,就能使用2.c中聲明的變數了。但是你的c文件用中文命名~~~真的沒問題嗎?我沒這么用過,建議改成英文文件名。
『捌』 c語言如何 調用外部程序
調用外部程序介面
方法1.
Process p=Runtime.getRuntime.exec("cmd")(最常用)
方法2.
Process p=new ProcessBuilder(cmd).start()
但是一般方法一比較常用, 下面我們介紹下方法一中關於抽象Process類的常用函數
//向對應程序中輸入數據
();
//獲得對應程序的輸出流(沒寫錯)
();
//獲得程序的錯誤提示
();
//等待程序執行完成,返回0正常,返回非0失敗
abstractpublicintwaitFor()throwsInterruptedException;
//獲得程序退出值,0正常退出,非0則異常
abstractpublicintexitValue();
//銷毀進程
abstractpublicvoiddestroy();
其中前3個函數用的最多