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);
}