struct 的可以声明匿名成员,(不稀奇) 如果匿名成员是一个struct,那么在使用时可以直接自己的成员一样引用,(稀奇,正常理解匿名的就不能使用了,有也只能充占空间) //from Windows Driver Kit BUSENUM.H typedef struct _PDO_DEVICE_DATA { #pragma warning(suppress:4201) COMMON_DEVICE_DATA; PDEVICE_OBJECT ParentFdo; } PDO_DEVICE_DATA, *PPDO_DEVICE_DATA; typedef struct _FDO_DEVICE_DATA { #pragma warning(suppress:4201) COMMON_DEVICE_DATA; PDEVICE_OBJECT UnderlyingPDO; PDEVICE_OBJECT NextLowerDriver; LIST_ENTRY ListOfPDOs; ULONG NumPDOs; FAST_MUTEX Mutex; ULONG OutstandingIO; // Biased to 1 KEVENT RemoveEvent; KEVENT StopEvent; UNICODE_STRING InterfaceName; WMILIB_CONTEXT WmiLibInfo; TOASTER_BUS_WMI_STD_DATA StdToasterBusData; } FDO_DEVICE_DATA, *PFDO_DEVICE_DATA; typedef struct _COMMON_DEVICE_DATA { PDEVICE_OBJECT Self; BOOLEAN IsFDO; DEVICE_PNP_STATE DevicePnPState; DEVICE_PNP_STATE PreviousPnPState; ULONG DebugLevel; SYSTEM_POWER_STATE SystemPowerState; DEVICE_POWER_STATE DevicePowerState; } COMMON_DEVICE_DATA, *PCOMMON_DEVICE_DATA; //usage PFDO_DEVICE_DATA fdo = ...; fdo->Self = ...;