c语言中函数重名居然还能编译运行,高手帮忙解释一下
最近看公司用c语言写的代码。看到两个函数重名了,但是还能编译运行,不知道为什么。两个函数在两个不同的文件中,编译是生成两个不同的目标文件,函数重名在这一步没有问题。但是在连接这连个目标文件时按里说应该有问题啊?可以编译能通过并且程序能执行。请高手帮我解释一下这是怎么一回事?
[解决办法]
两种情况
1. 是2个静态函数没有问题。
2. 两个函数编译到不同的lib文件中,但这函数没有同时都被调用,应该也没有问题
发布时间: 2012-10-11 10:16:10 作者: rapoo
c语言中函数重名居然还能编译运行,高手帮忙解释一下
最近看公司用c语言写的代码。看到两个函数重名了,但是还能编译运行,不知道为什么。两个函数在两个不同的文件中,编译是生成两个不同的目标文件,函数重名在这一步没有问题。但是在连接这连个目标文件时按里说应该有问题啊?可以编译能通过并且程序能执行。请高手帮我解释一下这是怎么一回事?
[解决办法]
两种情况
1. 是2个静态函数没有问题。
2. 两个函数编译到不同的lib文件中,但这函数没有同时都被调用,应该也没有问题