我需要弄清楚这个混淆的 C++ 代码(由其他人编写)做了什么。除了一个棘手的部分,我已经想通了几乎所有的东西:
bool part1(char *flag)
{
int *t = (int *) memfrob(flag, 8);
unsigned int b[] = {3164519328, 2997125270};
for (int i = 0; i < 2; b[i] = ~b[i], ++i);
return !(0<:t:>-0<:b:>+1<:t:>-1<:b:>);
}
Run Code Online (Sandbox Code Playgroud)
这个函数的 return 语句是怎么回事?我不知道这些冒号是什么意思...
我试过用谷歌搜索 C++ 中的冒号运算符是做什么的,但只找到了关于类构造函数和条件表达式的答案,这似乎与这个问题无关。