C语言调用自定义sayHi函数提示无效报错问题求助
报错根因
C语言编译遵循从上到下的扫描规则,函数必须在第一次被调用前完成声明或定义。你的代码在main中调用sayHi()时,编译器还未扫描到后续sayHi的实现,也没有提前收到该函数的声明,因此会抛出函数无效、未定义的错误。
修复方法
两种方式都能解决问题,任选其一即可:
- 把
sayHi函数的完整实现整体移动到main函数之前 - 在头文件引入之后、
main函数定义之前,补充sayHi的函数原型声明
可直接运行的修正代码
#include <stdio.h> #include <stdlib.h> // 提前声明函数原型,告知编译器该函数后续会定义 void sayHi(); int main(){ sayHi(); return 0; } void sayHi () { printf("Hello User"); }
运行上述代码即可正常输出目标内容Hello User。
内容的提问来源于stack exchange,提问作者Red
相关产品推荐
相关产品推荐

