使用自定義調(diào)試函數(shù)debug,控制輸出不輸出調(diào)試信息。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、涼城ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的涼城網(wǎng)站制作公司
下面的程序中,如果要不輸出調(diào)試信息,則注釋掉#define DEBUG,否則不注釋它。
這個程序,要輸出調(diào)試信息時,運(yùn)行結(jié)果如下:
i=1 ; f=1
i=2 ; f=2
i=3 ; f=6
i=4 ; f=24
4!=24
其中前面四行都是調(diào)試信息。
如果不輸出調(diào)試信息,運(yùn)行結(jié)果如下:
4!=24
有的人使用__DEBUG__來代替DEBUG,也是一樣的。
用__DEBUG__更安全一些(免得其它不小心用了DEBUG),但用DEBUG方便一些。
跟調(diào)用庫函數(shù)一樣,只不過這個自定義函數(shù)得你自己寫,
如果自定義函數(shù)在main()函數(shù)之后定義的話,,就得在main()前先聲明,main()中調(diào)用,main()后定義,如下簡易代碼:
#includestdio.h
void print(); //用戶自定義函數(shù)聲明
void main()
{
print(); //用戶自定義函數(shù)調(diào)用
}
void print() //用戶自定義函數(shù)定義
{
printf("函數(shù)已經(jīng)被調(diào)用\n");
}
如果自定義函數(shù)在main()之前已定義,則只需要進(jìn)行main()前定義,和main()中調(diào)用了,簡單代碼如下:
#includestdio.h
void print() //用戶自定義函數(shù)定義
{
printf("函數(shù)已經(jīng)被調(diào)用\n");
}
void main()
{
print(); //用戶自定義函數(shù)調(diào)用
}
要在主函數(shù)中調(diào)用其他函數(shù)就在主函數(shù)中直接寫出你的函數(shù)名(如果需要參數(shù)的話就傳入?yún)?shù)就可以了)看下面voidmain(){tr();//因?yàn)槟阕远x這個函數(shù)不需要參數(shù)所以直接調(diào)用就可以了}其他函數(shù)調(diào)用也一樣,一個函數(shù)可以調(diào)用另一個函數(shù)(不能調(diào)用主函數(shù))
一,函數(shù)調(diào)用的一般形式為:
函數(shù)名(實(shí)參列表);
實(shí)參可以是常數(shù)、變量、表達(dá)式等,多個實(shí)參用逗號,分隔。
在c語言中,函數(shù)調(diào)用的方式有多種,例如:
在函數(shù)調(diào)用中還應(yīng)該注意的一個問題是求值順序的問題。所謂求值順序是指對實(shí)參列表中各個參數(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)用,也就是在一個函數(shù)的定義中出現(xiàn)對另一個函數(shù)的調(diào)用。這樣就出現(xiàn)了函數(shù)的嵌套調(diào)用,即在被調(diào)函數(shù)中又調(diào)用其它函數(shù)。
【示例】計算sum
=
1!
+
2!
+
3!
+
...
+
(n-1)!
+
n!
分析:可以編寫兩個函數(shù),一個用來計算階乘,一個用來計算累加的和。
#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ù)可能會被頻繁的調(diào)用,所以寫在一個c文件里是不太方便的。應(yīng)該把這些自定義的函數(shù)寫在一個c文件里,同時在一個頭文件.h文件里聲明。主函數(shù)可以通過引用該頭文件然后調(diào)用需要的自定義函數(shù)。
1,舉例:在頭文件(.h)里聲明自定義函數(shù)
2,在一個c語言文件里寫下自定義函數(shù)的實(shí)現(xiàn)
3,在主函數(shù)中調(diào)用自定義函數(shù)
4,最后編譯所有的涉及到的c文件,頭文件可以不管