C语言编译时minimum函数报隐式声明错误的原因及解决方法
报错原因
C语言的编译规则要求:函数在被调用之前,必须先让编译器感知到该函数的存在。你当前的minimum函数定义写在main函数的后方,main函数中调用minimum时,编译器还没有扫描到该函数的定义,也没有提前看到对应的函数声明,因此会抛出「implicit declaration of function minimum」的错误。
解决方法
你可以任选以下一种方式修复该报错:
- 方法1:在代码头部(头文件引入语句之后,全局变量定义之后)补充三个自定义函数的声明:
float cordianation_entry(); float results_analysis(); float minimum();
- 方法2:调整代码的编写顺序,将
cordianation_entry、results_analysis、minimum三个函数的定义,全部移到main函数的前面,保证调用时编译器已经完成了对函数定义的扫描。
其他需要修正的代码问题
除了上述报错外,你的代码还存在以下问题需要修复才能正常运行:
- 三个自定义函数均声明了返回值类型为
float,但函数内部没有任何return返回语句,会触发编译警告。可以将函数返回值类型改为void,或者在函数末尾补充对应返回值。 minimum函数的逻辑存在笔误:当a[3]是最小值时,输出内容错误写为了"station 2 is the nearest",需要改为"station 3 is the nearest"。- 目前贴出的代码存在大括号不匹配的问题,
results_analysis函数缺少闭合大括号,同时存在多余的无效大括号,需要清理调整。
内容的提问来源于stack exchange,提问作者rahula chahar
相关产品推荐
相关产品推荐

