【发布时间】:2021-11-26 23:17:50
【问题描述】:
别名在 C++ 内部是如何工作的?
它是否像指针一样分配自己的内存?
不然编译器怎么处理?
是不是像 C++ 宏预处理器计算?
int x=5;
int &y=x; //Assembly of this???
【问题讨论】:
-
这是 C++ 独有的特性,C 没有引用类型
-
它的工作方式取决于实现。此外,引用变量的实现方式可能与引用参数和函数不同,因为后者从一个调用变为下一个调用。
-
最好的理解方式就是亲眼所见。在很多调试器(包括Visual Studio)中,当你遇到断点时,你可以打开“查看程序集”视图,在那里你可以看到汇编代码。
-
您也可以使用godbolt.org查看程序集。
-
本地引用可能就像一个宏,编译器只是自动翻译它。引用参数可能实现为隐藏指针。
标签: c++ alias compiler-optimization