我在內存中有一個結構,但並不是所有的成員都是已知的(這個結構是反向工程的)。我想要做的是有像內存中的表示:如何在結構中聲明填充?
struct Name {
long Id;
byte unknown[32];
float X;
};
但我想byte unknown[32]
是無形的,所以,當我使用Name
類型的東西,我只能看到2個變量Id和X.我認爲這是類似於:
struct Name {
long Id;
byte : 32*8; // So this doesn't appear
float X;
};
但這不起作用1.因爲我再侷限於每行8個字節,因此它必須看起來像:
struct Name {
long Id;
long long : 64;
long long : 64;
long long : 64;
long long : 64;
float X;
};
其次,當我真的嘗試這樣做時,它不能按預期工作(訪問X並不指向結構的偏移量0x24)。
爲什麼你不能使用第一種形式,並使'未知''私人'? –
答案很可能是編譯器特有的。你使用什麼編譯器? –
只是給它一個更好的名字,像'this_is_padding_that_I_absolutely_will_not_use_Honest_Gov' –