作者clanguage (C语言)
看板Programming
标题Re: [问题] C EFI code
时间Sun Apr 4 12:33:28 2010
F/W 版本 本来是 4byte, 但他取2byte 所以要转型
原因可能是 前2byte是一个意思, 後2byte是另一个意思
譬如说 major number 与 minor number 之类的
这个要查一下 SPEC
typedef struct _EFI_SYSTEM_TABLE {
EFI_TABLE_HEADER Hdr;
CHAR16 *FirmwareVendor;
UINT32 FirmwareRevision;
EFI_HANDLE ConsoleInHandle;
SIMPLE_INPUT_INTERFACE *ConIn;
EFI_HANDLE ConsoleOutHandle;
SIMPLE_TEXT_OUTPUT_INTERFACE *ConOut;
EFI_HANDLE StandardErrorHandle;
SIMPLE_TEXT_OUTPUT_INTERFACE *StdErr;
EFI_RUNTIME_SERVICES *RuntimeServices;
EFI_BOOT_SERVICES *BootServices;
UINTN NumberOfTableEntries;
EFI_CONFIGURATION_TABLE *ConfigurationTable;
} EFI_SYSTEM_TABLE;
※ 引述《lordking (卡多)》之铭言:
: 刚刚进入EFI领域 有些许语法都与C参考书写法不同
: 想请问一下 下列片段程式码意义
: if (pST->FirmwareRevision)
: InitString(
: HiiHandle,STRING_TOKEN(ABC),
: L"%d.%d.%d.%d",
: ((UINT16*)&pST->FirmwareRevision)[1],
: ^^^^^^^^^^^^^^^^ 应该如何解读??
: *(UINT16*)&pST->FirmwareRevision / 100,
: ^^^^^^^^^^^^^^^^应该如何解读??
: *(UINT16*)&pST->FirmwareRevision % 100 / 10,
: *(UINT16*)&pST->FirmwareRevision % 10
: 谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.235.8