linux下的函数声明问题
我写了一个自定义的函数,没有任何的声明,在另一个源文件里调用,编译通过,运行也可以,请问为什么?...
我写了一个自定义的函数,没有任何的声明,在另一个源文件里调用,编译通过,运行也可以,请问为什么?
展开
展开全部
函数声明的作用在于告诉编译器,在编译到调用这个函数的语句的时候,检查调用语句的参数个数、类型和顺序是否正确,不正确给出提示 。
如果你的函数书写在了调用语句之前,则由于编译器在编译到调用语句之前已经编译过这个函数,认识它,于是这时候没有声明也可以。但如果你这个函数书写在了调用语句之后,由于编译器是从前往后编译代码的,所以就会出现不认识的情况,就会提示出错。函数声明之所以写在代码的最前面,也是这个道理,目的就是告诉编译器,我后边有个函数是某某样子的,你得记着,它的实现代码这时候你写在哪儿就无所谓了。
你得情况可能就是,你先编译了自定义函数所在的 cpp ,而后编译的 主函数所在 cpp ,所以没声明也可以使用。
如果你的函数书写在了调用语句之前,则由于编译器在编译到调用语句之前已经编译过这个函数,认识它,于是这时候没有声明也可以。但如果你这个函数书写在了调用语句之后,由于编译器是从前往后编译代码的,所以就会出现不认识的情况,就会提示出错。函数声明之所以写在代码的最前面,也是这个道理,目的就是告诉编译器,我后边有个函数是某某样子的,你得记着,它的实现代码这时候你写在哪儿就无所谓了。
你得情况可能就是,你先编译了自定义函数所在的 cpp ,而后编译的 主函数所在 cpp ,所以没声明也可以使用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询