2
使用外部链接符号(其他全局命名空间混乱/碰撞)有没有什么缺点?例如,我认为如果我有一个我从来没有调用的函数,如果它有内部链接,编译器可以放弃它,但如果它是外部的,编译器必须将该代码留在内,因为稍后有人可能会链接到它。它是否正确?还有其他的缺点吗?外部链接缺陷
我在问,因为我知道建议使用未命名的命名空间而不是static关键字,但由于未命名的命名空间中的符号仍然具有外部链接,因此它们将遭受上述缺点(如果我对此有所了解),以及所以并不比标准所说的静态功能更好。
*未命名的命名空间中的函数可以被丢弃而不影响程序* - 是,但是它?你知道编译器实际上是这样吗? – baruch
@baruch:是的,gcc在优化级别> ='-O1'处执行此操作。 –