[在电影中看到了这一点(Night Hunter 2019),但我从未见过用这种方式编写的声明(假设这是C ++)。这种语法合法吗?这是在说什么?
(时间戳记46:30分钟)
我指的是代码,特别是HUNTER71
:
for (int i = 0; i < group_info->nblocks; HUNTER71 i++)
free_page((unsigned long)group_info->blocks[i]);
假设您正在参考以下代码段:
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
本身中执行附加逻辑并不罕见。