我明白我没有说清楚。我认为我的疑问可以总结为:
在可执行文件(机器代码)中如何表示“变量”?它们是静态内存地址吗?编译器是否给每个人一个特定的“名称”(或者只保留您给他们的那个)?
用代码表达:
int x=5;
//Bunch of code
cin>>y;
cout<<x+1;
每台机器中的程序如何知道哪个地址将保存值 5,保存输入的值,将其现在保存的值加 1,最后打印相同的值。
--João
它是特定于实现的。
通常,变量的位置将基于各种因素和优化。它们可能根本不存在于 RAM 中,因为它们可能被优化为完全存在于寄存器中,或者完全被优化掉。
变量名在运行时不存在;它们在编译过程中被丢弃。但是,编译器可能会发出存储在应用程序二进制文件中的调试信息,以允许开发人员调试应用程序。不过,这通常在发行版本中被删除。
我不知道 Gameshark 的具体情况。但在许多情况下,可以通过查看应用程序的机器代码来找出特定变量的位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)