2017-07-28 84 views
-4

縱觀一些.H劇本我看到這個:C++匿名結構異常定義

struct 
{ 
    int resource; 
} SimulRes[SIMULRES]; 

哪裏SIMULRES是定義如上:

#define SIMULRES 50 

我認爲這是一個匿名結構,但我已經習慣看到它在一個命名結構中定義。這是如何與不同的C++編譯器行爲?方括號內的參數是做什麼的? 謝謝。

+0

這有什麼奇怪的?你可以簡單地使用它:'SimulRes [0] .resource = 20;' – DimChtz

+0

好的,對於那個愚蠢的問題抱歉。它使用的上下文是讓我感到奇怪的,並且沒有在這裏分享這個上下文。 – andrewlis

回答

-1

這不是C++語法,而是C語法。

它僅僅意味着定義50(SIMULRES)個元素的數組SimulRes,其中元素的類型是具有單個項目resource的結構。

3

該定義創建了一個匿名爲struct的大小爲SIMULRES的數組。

因爲struct類型是匿名的,所以不能將它傳遞給函數或創建其他已定義的實例(或指針)。