gpt4 book ai didi

c - 为什么这个 c 结构有效?

转载 作者:太空宇宙 更新时间:2023-11-04 06:17:53 25 4
gpt4 key购买 nike

我在windows driver kit(WDK) sample中看到flow c语言代码:

typedef struct _COMMON_DEVICE_DATA
{
PDEVICE_OBJECT Self;

BOOLEAN IsFDO;
......................


} COMMON_DEVICE_DATA, *PCOMMON_DEVICE_DATA;


typedef struct _PDO_DEVICE_DATA
{
COMMON_DEVICE_DATA;

PDEVICE_OBJECT ParentFdo;

.................

} PDO_DEVICE_DATA, *PPDO_DEVICE_DATA;

但是当我想测试 smillar 代码时,它会生成错误。

test.c:14:6: error: ‘AA’ has no member named ‘flag’
a.flag = 1;

测试代码如下:

typedef struct __COMMON_DATA{     
int flag;
}COMMON_DATA;

typedef struct __AA{
COMMON_DATA;
int x;
int y;
}AA;

int main(int argc, char *argv[])
{
AA a;
a.flag = 1;
return 0;
}

看起来都和window示例代码一样,但是哪里错了呢?

最佳答案

WDK 代码示例中使用的语法是 Microsoft 对 C 中结构继承的扩展。但是您的错误消息看起来像 gcc 错误消息。

如果您实际使用的是 gcc,则可以尝试使用 -fms-extensions 进行构建。

Link to related answer

关于c - 为什么这个 c 结构有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41501551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com