C++编译器如何编译变量名? [关闭]

2024-02-05

我明白我没有说清楚。我认为我的疑问可以总结为:

在可执行文件(机器代码)中如何表示“变量”?它们是静态内存地址吗?编译器是否给每个人一个特定的“名称”(或者只保留您给他们的那个)?

用代码表达:

 int x=5;
 //Bunch of code
 cin>>y;
 cout<<x+1;

每台机器中的程序如何知道哪个地址将保存值 5,保存输入的值,将其现在保存的值加 1,最后打印相同的值。

--João


它是特定于实现的。

通常,变量的位置将基于各种因素和优化。它们可能根本不存在于 RAM 中,因为它们可能被优化为完全存在于寄存器中,或者完全被优化掉。

变量名在运行时不存在;它们在编译过程中被丢弃。但是,编译器可能会发出存储在应用程序二进制文件中的调试信息,以允许开发人员调试应用程序。不过,这通常在发行版本中被删除。

我不知道 Gameshark 的具体情况。但在许多情况下,可以通过查看应用程序的机器代码来找出特定变量的位置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++编译器如何编译变量名? [关闭] 的相关文章

随机推荐