c++ - 当代码从高级语言转换为低级语言时,访问说明符是否仍然完好无损?
问题描述
就像高级语言中存在的所有私有的,受保护的数据成员仍然是那样,或者当从高级语言更改为汇编时它们都是公共的?
解决方案
是和否。大多数情况下不是。
私有成员和受保护成员实际上是编译时的事情。它引导编译器帮助你不要在代码中犯愚蠢的错误。编译器通过拒绝生成违反限制的汇编代码来做到这一点。
所以在生成的可执行文件中没有违反规则的代码,因为这样的代码永远不会被成功编译。从这个意义上说,限制仍然存在。
但是在组装或硬件级别上,没有什么比私有或受保护的了。它只是字节。如果您要直接在汇编中编写代码,您可以读取所有私有 C++ 变量,没有什么能阻止您。
推荐阅读
- ethereum - 使用 ERC-20 代币在 Solidity 合约中设置价格
- agora.io - 在 agora io sdk 4 上使用 localhost 的 CORS 问题
- python - scipy.signal.sosfilt 输出不可行
- webpack - 如何使用字体显示:交换;用于roboto字体类星体应用
- flutter - Dynamically generate new Switch Cases in Switch Statement flutter/dart
- ruby-on-rails - Rails 无法导入模块 IntelliJ
- javascript - How to ask for input each time a loop finishes?
- javascript - I am creating a pubsub class in js , but i am having issue with the the class export import
- python - 如何有效地使用 Gmail api 阅读所有邮件?
- database - MongoDB $push 到嵌套子级 - 递归数据结构