縱觀一些.H劇本我看到這個:C++匿名結構異常定義
struct
{
int resource;
} SimulRes[SIMULRES];
哪裏SIMULRES是定義如上:
#define SIMULRES 50
我認爲這是一個匿名結構,但我已經習慣看到它在一個命名結構中定義。這是如何與不同的C++編譯器行爲?方括號內的參數是做什麼的? 謝謝。
縱觀一些.H劇本我看到這個:C++匿名結構異常定義
struct
{
int resource;
} SimulRes[SIMULRES];
哪裏SIMULRES是定義如上:
#define SIMULRES 50
我認爲這是一個匿名結構,但我已經習慣看到它在一個命名結構中定義。這是如何與不同的C++編譯器行爲?方括號內的參數是做什麼的? 謝謝。
這不是C++語法,而是C語法。
它僅僅意味着定義50(SIMULRES
)個元素的數組SimulRes
,其中元素的類型是具有單個項目resource
的結構。
該定義創建了一個匿名爲struct
的大小爲SIMULRES
的數組。
因爲struct類型是匿名的,所以不能將它傳遞給函數或創建其他已定義的實例(或指針)。
這有什麼奇怪的?你可以簡單地使用它:'SimulRes [0] .resource = 20;' – DimChtz
好的,對於那個愚蠢的問題抱歉。它使用的上下文是讓我感到奇怪的,並且沒有在這裏分享這個上下文。 – andrewlis