Можете ли вы объяснить это определение C из efilib.h?

Я изучаю программирование UEFI и замечаю, что во многих заголовочных файлах EFI показаны фрагменты с таким синтаксисом, который я не могу понять:

typedef
EFI_STATUS
(EFIAPI *EFI_TEXT_STRING) (
    IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
    IN CHAR16 *String
);
  • Не могли бы вы объяснить, каковы аргументы этого typedef в этом случае?
  • Как же эти IN законный синтаксис? Это особенность компилятора?

1 ответ

Решение

Это простой typdef для указателя на функцию. Тип EFI_TEXT_STRING является указателем на функцию, которая принимает указатель на EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL в качестве первого аргумента и указатель на CHAR16 в качестве второго аргумента. Функция возвращает тип EFI_STATUS.

Другие вопросы по тегам