2016-08-23 7 views
-1

Я изучаю программирование UEFI и я заметил, что многие из заголовочных файлов EFI показывают куски с этим синтаксисом, я не могу понять:Можете ли вы объяснить это определение C от efilib.h?

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

Возможный дубликат [Понимание typedefs для указателей функций в C] (http://stackoverflow.com/questions/1591361/understanding-typedefs-for-function-pointers-in-c) – Drop

+1

Задайте только один вопрос на вопрос в будущем. – Drop

+0

вы можете сначала просмотреть макросы и посмотреть, как они эффективно используются. Это поможет вам понять это немного быстрее. – Sridhar

ответ

1

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