这个问题来源于小组交流群里的一个问题:
最终问题落脚在 : 一个函数在main
中调用了,必须在main
之前定义或者声明吗?
我在自己的Centos
上做了实验,结果是函数不需要,但是结构体(变量也要)需要,如下图:
编译上面的程序,func
函数只是一个警告,因此我以为C编译器
不管前置声明
,然后又测试了c++
的编译器,发现不能通过编译,直接报错。
然后查询到C++前置声明的相关资料,强制要求前置声明:
https://stackoverflow.com/questions/4757565/what-are-forward-declarations-in-c
最后有关C这个问题的答案是:C语言的“隐式函数声明”惹的祸 :
知乎:https://www.zhihu.com/question/35890756
隐式函数声明:http://blog.csdn.net/smstong/article/details/50523120
[完]