Вот втретилось в чужом коде одна необычная (для меня) вещь. В структурах есть поле, содержащее адрес этого же самого экземпляра структуры. Названо оно там guard и выглядит это примерно так:
struct item {
struct item* guard;
};
И в функциях, в которые такая структура передаётся по указателю, есть примерно такой код:
void process_item (struct item* i)
{
if (i->guard != i) {
error ();
};
}
Что это за идиома такая? По какому названию спрашивать о ней у гугла? Насколько оправдано её применение? Ну и вообще кто что думает об этом? Автора кода сейчас уже не найти.