TheDarhi
@TheDarhi

Как правильно работать с функциями?

Добрый день,

Столкнулся со сложностями воссоздания "по" по уроку от DarkTiger .
На моменте:
Вставим вывод нашей строки в функцию EntryPoint() нашего драйвера. Добавляем в области объявления переменных нашу переменную типа CHAR16 (используется двухбайтовая кодировка символов UCS-2) в функции MyFirstDriverDriverEntryPoint() в MyFirstDriver.c:


CHAR16 *MyString = L"I have written my first UEFI driver\r\n";


После, в самом конце функции MyFirstDriverDriverEntryPoint() вставьте код вывода нашей текстовой переменной на консоль вывода (экран по дефолту, в нашем случае):


gST->ConOut->OutputString(gST->ConOut, MyString);

И соответственно я понял это так:

EFI_STATUS
EFIAPI
MyFirstDriverDriverEntryPoint (
  IN EFI_HANDLE        ImageHandle,
  IN EFI_SYSTEM_TABLE  *SystemTable
  CHAR16 *MyString = L"I have written my first UEFI driver\r\n";
  )
{
  EFI_STATUS  Status;

  Status = EFI_SUCCESS;

  //
  // Install UEFI Driver Model protocol(s).
  //
  Status = EfiLibInstallDriverBindingComponentName2 (
             ImageHandle,
             SystemTable,
             &gMyFirstDriverDriverBinding,
             ImageHandle,
             &gMyFirstDriverComponentName,
             &gMyFirstDriverComponentName2
             );
  ASSERT_EFI_ERROR (Status);

  return Status;
}
  gST->ConOut->OutputString(gST->ConOut, MyString);


и получил ошибку при компиляции.

Где в функции MyFirstDriverDriverEntryPoint () область объявления переменных?

Вставим вывод нашей строки в функцию
Это значит вставить данный код внутри скобок () ?

После, в самом конце функции MyFirstDriverDriverEntryPoint ()
Это значит перед началом следующей функции? Или же в конце скобки?
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
@lnxlnxlnx
Перед return Status;
Область видимости функции начинается с открытия фигурной скобки, соответсвенно выход - при закрытии. Советую, перед написаниям продуктов ПО, изучить язык на более лёгком уровне
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы