【发布时间】:2011-02-25 14:35:00
【问题描述】:
我正在尝试学习和理解 C++ 中的名称修饰。以下是一些问题:
(1) 来自devx
当一个全局函数被重载时,每个重载版本生成的重载名称都是唯一的。名称修饰也适用于变量。因此,具有相同用户给定名称的局部变量和全局变量仍然会得到不同的重命名。
除了重载函数和同名全局和局部变量之外,还有其他使用名称修饰的示例吗?
(2) 来自Wiki
当语言允许不同的实体使用相同的标识符命名时,只要它们占用不同的命名空间(其中命名空间通常由模块、类或显式命名空间指令定义),就会出现这种需求。
我不太明白为什么名称修饰只适用于标识符属于不同命名空间的情况,因为重载函数可以在同一个命名空间中,同名的全局变量和局部变量也可以在同一个空间中.这个怎么理解?
同名但在不同范围内的变量是否也使用名称修饰?
(3) C 有名称修饰吗?如果不是,那如何处理一些全局变量和局部变量同名的情况呢? C 没有重载函数,对吧?
感谢和问候!
【问题讨论】:
标签: c++ c compilation linker name-mangling