私はWindows Driver Kit(WDK)のサンプル中の流れC言語のコードを参照してください?なぜこの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;
fllowとしてTesingコード:
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;
}
すべては、ウィンドウのサンプルコードと同じように見える、しかし、ここでそれは間違っていますか? AAは持っているので
コードベースで予約名を使用していない(2つのアンダースコアは、大文字が続くアンダースコア) – Danh
*「はすべて、ウィンドウのサンプルコードと同じように見える。」* - 一つのコードでは、使用します'a.flag'、他の(現在提供されているように)、あなたは構造体を宣言するだけです...コードは明らかに異なります。 – Holt
vistualスタジオビルドを使用(ファイル拡張子はcpp)、エラー:C2039: 'flag': '__AA'のメンバーではありません。 –