使用带有外部链接的符号(除全局命名空间混乱/冲突之外)有什么缺点吗?例如,我会认为如果我有一个我从不调用的函数,如果它有内部链接,编译器可以丢弃它,但如果它是外部的,编译器必须保留该代码,因为稍后有人可能会链接到它. 它是否正确?还有其他缺点吗?
我问是因为我知道推荐使用未命名的命名空间而不是 static 关键字,但是由于未命名命名空间中的符号仍然具有外部链接,因此它们会遭受上述缺点(如果我是对的),因此并不完全比标准所说的静态函数更好。
使用带有外部链接的符号(除全局命名空间混乱/冲突之外)有什么缺点吗?例如,我会认为如果我有一个我从不调用的函数,如果它有内部链接,编译器可以丢弃它,但如果它是外部的,编译器必须保留该代码,因为稍后有人可能会链接到它. 它是否正确?还有其他缺点吗?
我问是因为我知道推荐使用未命名的命名空间而不是 static 关键字,但是由于未命名命名空间中的符号仍然具有外部链接,因此它们会遭受上述缺点(如果我是对的),因此并不完全比标准所说的静态函数更好。