爲了幫助我的單人尋求用D問題(= p)填充SO,我遇到了另一個問題;初始化全局結構數組。注意:如何初始化D中的全局結構數組?
struct A
{
int a;
float b;
}
A[2] as;
as[0] = {0, 0.0f};
as[1] = {5, 5.2f};
void main() {}
結果:
$ dmd wtf.d
wtf.d(8): no identifier for declarator as[0]
wtf.d(9): no identifier for declarator as[1]
翻翻在Digital Mars的文檔,我實在看不出什麼完全顯而易見的我,所以我再回頭想堆棧溢出的勇敢嬌客!我猜錯誤信息與真正的問題沒有太大關係,因爲[0] 是的一個標識符(但是dmd
認爲它是一個聲明者,AFAICT查看docs,它不是) ?
D'oh。我試過這個,但忘記了我在使用D並且做了C風格的{{},{}}語法。謝謝。 – Bernard 2009-08-24 21:58:28
+1,D期望在模塊的頂層聲明,而不是聲明。對於無法在編譯時計算的初始值,您也可以使用模塊初始化程序。 – shambulator 2010-08-16 12:13:54