我注意到,当使用 G++ 链接项目时,如果有已声明但未实现的函数,则不会出现错误,除非我尝试调用它们。
Q1:如果声明了函数但未实现,是否可以启用错误(或至少警告)?
Q2:为什么会有这种行为?
(Note:我在用G++ 4.7.0
, ld 2.22
如果那是 gcc 使用的链接器,则来自mingw
包裹)
A2:诸如具有外部链接的非内联函数之类的实体在程序中可以有零个或一个定义。如果实际使用的话,只需要有一个定义(严格来说odr-used) - 例如通过被召唤。如果 g++ 对未使用的未定义函数发出错误,则会出错。
A1:所以不可能(以一致的方式)强制这是一个错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)