在使用一個(gè)函數(shù)之前必須先對他進(jìn)行聲明:
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、網(wǎng)站設(shè)計(jì)、江寧網(wǎng)絡(luò)推廣、微信平臺(tái)小程序開發(fā)、江寧網(wǎng)絡(luò)營銷、江寧企業(yè)策劃、江寧品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供江寧建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
//void B();聲明B函數(shù)的存在。void A(){B();//非法,程序執(zhí)行到此時(shí)并不知道B函數(shù)的存在。}void B(){}
或者
#include stdio.h
#include stdlib.h
#include math.h
int fa(int n)
{
int a;
for(a=2;a=sqrt(n*1.0),n%a!=0;a++);
if(asqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",n);
擴(kuò)展資料
#include stdio.h
#include stdlib.h
#include math.h
int fa(int n)
{
int a;
for(a=2;a=sqrt(n*1.0),n%a!=0;a++);
if(asqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",n);
if(fa(n)==1)
printf("n");
else
printf("y");
system("pause");
exit(0);
}
參考資料:百度百科 - C語言函數(shù)
工具/材料
Ubuntu16.04
gcc+vim
01
打開Ubuntu,并在目標(biāo)路徑下開啟一個(gè)終端。
02
選定一個(gè)路徑,使用touch命令創(chuàng)建三個(gè)文件,function.h,function.c,test.c,分別用來做函數(shù)頭文件、函數(shù)源文件以及測試文件
03
這里以四則運(yùn)算函數(shù)為例說明函數(shù)的編寫流程與調(diào)用流程。首先用vim命令與vsplit依次打開三個(gè)文件。
04
在頭文件中添加重復(fù)包含的宏,并添加四則運(yùn)算的函數(shù)聲明。
05
在function.c中將function.h包含進(jìn)來,并具體實(shí)現(xiàn)四個(gè)方法。注意出發(fā)要對除數(shù)是否為0進(jìn)行判斷。
06
然后編寫測試程序進(jìn)行測試??偟某绦虼a如下:
07
保存所有的程序并退出,使用gcc進(jìn)行編譯,并運(yùn)行得到的結(jié)果如下。這就是函數(shù)的聲明、定義以及調(diào)用。
要在主函數(shù)中調(diào)用其他函數(shù)就在主函數(shù)中直接寫出你的函數(shù)名(如果需要參數(shù)的話就傳入?yún)?shù)就可以了)看下面voidmain(){tr();//因?yàn)槟阕远x這個(gè)函數(shù)不需要參數(shù)所以直接調(diào)用就可以了}其他函數(shù)調(diào)用也一樣,一個(gè)函數(shù)可以調(diào)用另一個(gè)函數(shù)(不能調(diào)用主函數(shù))
不知道你用的是什么開發(fā)工具。
用常規(guī)開發(fā)工具,通常情況下,有以下幾種方法:
1、創(chuàng)建你的文件,include 你要調(diào)用的函數(shù)所在的文件,然后直接調(diào)用;
2、創(chuàng)建一個(gè)工程文件,將你所要調(diào)用函數(shù)的文件加載到工程文件中,然后,在你調(diào)用的文件中,聲明你要調(diào)用的函數(shù),然后調(diào)用即可;
3、將你要調(diào)用的函數(shù)所在的文件分離,讓其不包含主函數(shù),然后將其單獨(dú)編譯,生成obj文件,通過lib將其有obj文件轉(zhuǎn)換為lib文件,建立單獨(dú)的聲明函數(shù)頭文件,設(shè)置庫文件目錄,在你要調(diào)用的文件中include聲明函數(shù)頭文件,然后調(diào)用即可。
可以的,前提是,在使用一個(gè)函數(shù)之前必須先對他進(jìn)行聲明:
//void B();聲明B函數(shù)的存在。
void A()
{
B();//非法,程序執(zhí)行到此時(shí)并不知道B函數(shù)的存在。
}
void B()
{
}
或者
#include stdio.h
#include stdlib.h
#include math.h
int fa(int n)
{
int a;
for(a=2;a=sqrt(n*1.0),n%a!=0;a++);
if(asqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",n);
擴(kuò)展資料
從函數(shù)定義的角度看,函數(shù)可分為庫函數(shù)和用戶定義函數(shù)兩種。
(1)庫函數(shù)
由C系統(tǒng)提供,用戶無須定義, 也不必在程序中作類型說明,只需在程序前包含有該函數(shù)原型的頭文件即可在程序中直接調(diào)用。在前面各章的例題中反復(fù)用到printf 、 scanf 、 getchar 、putchar、gets、puts、strcat等函數(shù)均屬此類。
(2)用戶定義函數(shù)
由用戶按需要寫的函數(shù)。對于用戶自定義函數(shù), 不僅要在程序中定義函數(shù)本身, 而且在主調(diào)函數(shù)模塊中還必須對該被調(diào)函數(shù)進(jìn)行類型說明,然后才能使用。
一,函數(shù)調(diào)用的一般形式為:
函數(shù)名(實(shí)參列表);
實(shí)參可以是常數(shù)、變量、表達(dá)式等,多個(gè)實(shí)參用逗號,分隔。
在c語言中,函數(shù)調(diào)用的方式有多種,例如:
在函數(shù)調(diào)用中還應(yīng)該注意的一個(gè)問題是求值順序的問題。所謂求值順序是指對實(shí)參列表中各個(gè)參數(shù)是自左向右使用呢,還是自右向左使用。對此,各系統(tǒng)的規(guī)定不一定相同。
【示例】在vc6.0下運(yùn)行以下代碼。
運(yùn)行結(jié)果:
8
7
6
7
可見vc
6.0是按照從右至左的順序求值。如果按照從左至右求值,結(jié)果應(yīng)為:
9
10
9
8
函數(shù)的嵌套調(diào)用
函數(shù)不能嵌套定義,但可以嵌套調(diào)用,也就是在一個(gè)函數(shù)的定義中出現(xiàn)對另一個(gè)函數(shù)的調(diào)用。這樣就出現(xiàn)了函數(shù)的嵌套調(diào)用,即在被調(diào)函數(shù)中又調(diào)用其它函數(shù)。
【示例】計(jì)算sum
=
1!
+
2!
+
3!
+
...
+
(n-1)!
+
n!
分析:可以編寫兩個(gè)函數(shù),一個(gè)用來計(jì)算階乘,一個(gè)用來計(jì)算累加的和。
#include
//求階乘
long
factorial(int
n){
int
i;
long
result=1;
for(i=1;
i=n;
i++){
result
*=
n;
}
return
result;
}
//
求累加的和
long
sum(long
n){
int
i;
long
result
=
0;
for(i=1;
i=n;
i++){
//嵌套調(diào)用
result
+=
factorial(n);
}
return
result;
}
int
main(){
printf("1!+2!+...+9!+10!
=
%ld\n",
sum(10));
return
0;
}
二,有些自定義函數(shù)可能會(huì)被頻繁的調(diào)用,所以寫在一個(gè)c文件里是不太方便的。應(yīng)該把這些自定義的函數(shù)寫在一個(gè)c文件里,同時(shí)在一個(gè)頭文件.h文件里聲明。主函數(shù)可以通過引用該頭文件然后調(diào)用需要的自定義函數(shù)。
1,舉例:在頭文件(.h)里聲明自定義函數(shù)
2,在一個(gè)c語言文件里寫下自定義函數(shù)的實(shí)現(xiàn)
3,在主函數(shù)中調(diào)用自定義函數(shù)
4,最后編譯所有的涉及到的c文件,頭文件可以不管