Я работал с UEFI, связанным с драйверами, и я наткнулся на это:
/* EFI headers define EFI_HANDLE as a void pointer, which renders type
* checking somewhat useless. Work around this bizarre sabotage
* attempt by redefining EFI_HANDLE as a pointer to an anonymous
* structure.
*/
#define EFI_HANDLE STUPID_EFI_HANDLE
#include <ipxe/efi/Uefi/UefiBaseType.h>
#undef EFI_HANDLE
typedef struct {} *EFI_HANDLE;
Полный исходный код находится на этом пути http://dox.ipxe.org/include_2ipxe_2efi_2efi_8h_source.html
Это моя первая встреча с анонимной структурой, и я не мог разобрать логику переопределения void *
указателю на анонимную структуру. Какой взломать "попытку саботажа bizzare" намекает?