reverse-engineering - ::struct 在这种情况下是什么意思?
问题描述
我不知道如何搜索这个,因为谷歌似乎忽略了::
我的搜索。
我在伪代码中有以下行:(此上下文中的播放器定义为Player *player
:)
if ( player == ::player )
我认为这意味着,如果var player
,是类型player
。但这对我来说没有意义,因为编译器应该知道它是什么类型。
那么这里是什么
::player
意思呢?
解决方案
我没有足够的代表发表评论。所以把它变成了一个完整的答案。
通常,::
运算符用作范围解析运算符。
根据语言,在您的示例中,因为没有前置命名空间,它将引用全局player
从链接页面:
class A {
public:
static int i; // scope of A
};
namespace B {
int j = 2;
} // namespace B
int A::i = 4; // scope operator refers to the integer i declared in the class A
int x = B::j; // scope operator refers to the integer j declared in the namespace B
在 IDA 的上下文中,它可能是它自己引用全局player
对象的方式。
所以在你的例子中:
if ( player == ::player )
开发人员明确强制将本地player
对象/变量与player
全局命名空间中的对象/变量进行比较。
这是一个简单的在线演示,可能会有所帮助。原始avar
变量可以是更复杂的对象、类或函数,而不是 int。
推荐阅读
- typescript - 打字稿:“数字”类型的参数不可分配给“字符串”类型的参数
- php - PHP-Websocket:socket_recv() 和 socket_getpeername() 的问题
- eclipse - 无法在 Eclipse Photon / Eclipse IDE 中安装 Glassfish 工具
- java - While 循环出现 NoSuchElementException 错误
- python - 如果您要求整数并且没有得到整数,是否有例外?
- android - 在 Android 中从 Fragment 打开 Activity
- dart - 谁能给我一个想法,将会话超时重定向到颤振的登录屏幕?
- flutter - 尽管 SingleChildScrollView 出现 Flutter 溢出异常
- c# - C#检查字符串是否存在,如果存在则显示该字符串
- python - 对 Flask 后端响应正文的获取请求为 null 且没有 cors 并且在没有 no-cors 的情况下失败