c語言里調用函數為什麼找不到
① 在c語言中自定義了一個函數,在main中調用時提示找不到標識符,怎麼辦
把定義的函數放在,main函數之前即可。
自定義的函數需要聲明在調用之前,比如說在main函數里調用自定義的fun(),則fun()的方法體需要寫在main函數之前。
在C語言中的執行總是從main函數開始的,無論main函數在哪個位置都肯定從它開始。如果你定義的函數在main函數之後。
而且在main函數前沒有進行該調用函數的聲明那麼當在main函數中調用的該函數系統將不認識,會有錯誤提示的,如果定義的函數在main函數之前,那麼就沒事了。
(1)c語言里調用函數為什麼找不到擴展閱讀:
C語言中標識符的使用規范:
1、標識符由字母(A-Z,a-z)、數字(0-9)、下劃線「_」組成,並且首字元不能是數字,但可以是字母或者下劃線。例如,正確的標識符:abc,a1,prog_to。
2、不能把C語言關鍵字作為用戶標識符,例如if,for,while等。
3、標識符長度是由機器上的編譯系統決定的,一般的限制為8字元(註:8字元長度限制是C89標准,C99標准已經擴充長度,其實大部分工業標准都更長)。
4、標識符對大小寫敏感,即嚴格區分大小寫。一般對變數名用小寫,符號常量命名用大寫。
5、標識符命名應做到「見名知意」,例如,長度(length),求和、總計(sum)。
② 找不到標識符,我的函數是自定義的,不需要加頭文件,為什麼會找不到標識符,請高手指點一二。
(1)你寫的是C語言程序,所以沒有 "&" -- 「引用」語法定義,要改寫為指針。
(2)分清聲明和調用,聲明是聲明寫法,調用是調用寫法,不要混。
(3)Huffmancoding 要調用 Searchcode,所以 Searchcode 定義要放前面。
(4)語法次序和形式:
void Searchcode(Huffmantree *HT,int *n){
。。。。// 改正內容
}
void Huffmancoding(Huffmantree *HT,int n){
。。 // 改正內容
Searchcode(HT,&n);
。。。 // 改正內容
}
void main(){
int i,n;
Huffmantree HT;
printf("n\n");
scanf("%d",&n);
Searchcode(&HT, &n); // 調用
Huffmancoding(&HT,n); // 調用
for(i=1;i<=2*n-1;i++)printf("%d",i,HT[i].weight);
}