C语言中声明函数有什么用? 为什么有的代码不用声明函数就能直接使用?
1个回答
关注
展开全部
咨询记录 · 回答于2022-06-28
C语言中声明函数有什么用? 为什么有的代码不用声明函数就能直接使用?
亲您好,其实函数声明的作用是让编译器帮你检查你调用函数时有没有错误。比如参数的数量是否正确,如果调用函数时候少传入一个参数,并且没有声明该函数,编译器无法知道你调用是否正确,只会提示一个警告。很多人会忽略警告,导致最后程序运行时出现异常。为什么如果不声明函数,编译器发现不了错误?编译器在编译过程中依次生成对应源文件的可重定位目标文件(.o),每个源文件中调用的函数在链接前都是以符号的形式体现在.o文件中。在编译过程中不会去检查某个函数的形式,因为函数参数是通过寄存器和压栈来处理的,直接把函数翻译成符号,编译器是不知道关于函数参数的信息的,最后交给连接器把符号翻译成地址。所以链接的时候只要能找到对应得符号就不会报错。希望对您有帮助。