同意上解。找到此函数的定义,并将相应的文件或库一起编译或连接。
创新互联主营昭化网站建设的网络公司,主营网站建设方案,成都App定制开发,昭化h5微信小程序开发搭建,昭化网站营销推广欢迎昭化等地区企业咨询
第一个:uchar不是C语言标准的数据类型,编译器叫唤它不识别。第二个:write_sfm();没有函数原型声明,也就是说你在调用这个函数的时候,编译器还不知道这函数是个啥玩意儿呢……(或许在后面有函数声明,但是C99之前的编译器不是神仙,它不能预先看到你在后面写的东西……)第三个:同第一个,编译器说“客官uchar是个啥,奴家不知”……而且这一行连分号都没有…… 除了这三个报错,程序里书写错误和不合理的程序还有一大堆……
函数原型作为声明,作用是提示编译器,作为标识符的函数名,在声明之后或外部编译单元/库文件存在定义,以抑制编译器遇到这个标识符时产生标识符未定义的编译错误,同时标明出这个函数的参数传递及出入栈顺序等必要的进出要素,函数的定义则始终以原型为基准进行实现。原型作为语法技术的提出,出发点就在于此,利用它可以方便地定义互相递归的函数,以及引用外部库文件的符号。
1、c语言中我们通常把函数的声明叫做函数的原型。
2、c语言中把函数的定义叫做函数的实现。
3、函数是C/C++程序的基本模块。可将一些功能相对独立的或经常使用的操作或运算抽象出来,定义为函数。使用时只要考虑其功能和使用接口即可。在结构化程序设计中,函数是将任务进行模块划分的基本单位。在面向对象的程序设计中,类中所封装的操作是用函数进行描述的,因此函数在C++程序中具有非常重要的意义。
函数原型就是函数本身定义的形式。
函数的格式为:
return_type func_name(arg_list);
所以函数的原型,就是根据函数名查找到的定义或者声明的形式,通过原型可以确认函数的返回值类型(return_type),以及需要多少个参数,每个参数的类型是什么(arg_list)。
这样才能够确定,如何调用函数才是正确的。
函数在未调用之前,编译器无法对其编译,也就看不到函数原型。