Я только что просмотрел дипломную работу Марка Пробста и наткнулся на следующий код:
typedef void* cont(void);
for (;;)
{
cp = (cont*)(*cp)();
}
Я почти уверен, что актеры должны читать (cont)
, а не (cont*)
, потому что он объясняет:
Функция, желающая сделать правильный конечный вызов, возвращает адрес функции , которая будет вызвана
И cont
- это уже тип указателя на функцию. Итак, давайте изменим эту строку на:
cp = (cont)(*cp)();
Теперь мне было интересно, как мы можем избавиться от актеров? Можно ли определить cont
, чтобы он возвращал cont
? Как будет выглядеть typedef
для cont
? Нужен ли нам вспомогательный тип для достижения этой цели? Это невозможно?