无法从电影中清除代码。这合法吗?

问题描述 投票:0回答:1

[在电影中看到了这一点(Night Hunter 2019),但我从未见过用这种方式编写的声明(假设这是C ++)。这种语法合法吗?这是在说什么?

(时间戳记46:30分钟)

image

我指的是代码,特别是HUNTER71

for (int i = 0; i < group_info->nblocks; HUNTER71 i++)
    free_page((unsigned long)group_info->blocks[i]);
c++ syntax
1个回答
2
投票

假设您正在参考以下代码段:

for (int i = 0; i < group_info->nblocks; HUNTER71 i++)
    free_page((unsigned long)group_info->blocks[i]);

是的,这是有效的C ++;但是,它很可能完全是C或完全不同的语言。我将继续使用C ++

所以它是有效的,但是它能做什么?正如Igor在评论中指出的那样,它可能只是一个什么都不做的宏:

#define HUNTER71
for (int i = 0; i < group_info->nblocks; HUNTER71 i++)
    free_page((unsigned long)group_info->blocks[i]);

此外,HUNTER71实际上可以执行一些逻辑,例如递增变量,甚至打印我们循环的次数:

#define HUNTER71 std::cout << i,
for (int i = 0; i < group_info->nblocks; HUNTER71 i++)
    free_page((unsigned long)group_info->blocks[i]);

尚不清楚它可以做什么,但是for语句在for本身中执行附加逻辑并不罕见。

© www.soinside.com 2019 - 2024. All rights reserved.