我正在尝试学习和理解 C++ 中的名称修饰。这里有一些问题:
(1) 来自devx
当全局函数重载时,为每个重载版本生成的重命名名称是唯一的。名称修饰也适用于变量。因此,具有相同用户给定名称的局部变量和全局变量仍然会得到不同的重命名。
除了重载函数和同名全局变量和局部变量之外,还有其他使用名称修饰的示例吗?
(2) 来自维基
当语言允许不同的实体使用相同的标识符命名时,只要它们占用不同的命名空间(其中命名空间通常由模块、类或显式命名空间指令定义),就会出现这种需求。
我不太明白为什么名称修饰仅适用于标识符属于不同命名空间的情况,因为重载函数可以在同一个命名空间中,并且同名的全局和局部变量也可以在同一个空间中。这个怎么理解?
具有相同名称但在不同范围内的变量是否也使用名称修饰?
(3) C 有名称修饰吗?如果不是,那如何处理一些全局变量和局部变量同名的情况呢?C 没有重载函数,对吧?
谢谢并恭祝安康!