Код не понятен из мов ie. Это законно? - PullRequest
1 голос
/ 14 января 2020

Увидел это в мове ie (Night Hunter 2019), и я никогда не видел написанное таким образом утверждение for (предполагая, что это C ++). Законен ли этот синтаксис? О чем это говорит?

(отметка времени 46:30 минут)

image

Код, на который я ссылаюсь, в частности HUNTER71:

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

1 Ответ

5 голосов
/ 14 января 2020

Предполагается, что вы ссылаетесь на следующий фрагмент:

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

Да, это действительно C ++; тем не менее, это может быть просто 1016 * или другой язык. Я продолжу, как будто это C ++

Так что это действительно, но что это может сделать? Хорошо, как указывает Игорь в комментариях, это может быть просто макрос, который ничего не делает:

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

Более того, HUNTER71 может на самом деле делать некоторые логики c, такие как увеличение переменной или даже напечатайте, сколько раз мы зациклились:

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

Непонятно, что он может делать, но весьма часто операторы for выполняют дополнительные логические операции c в самом for.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...