2013-04-20 177 views
1

我有這樣的數據結構:初始化數據結構

typedef struct 
{ 
    float XYZW[4]; 
    float RGBA[4]; 
} Vertex; 

    Vertex axisVertices[] = 
{ 
    { { -0.885f, -0.885f, 0.0f, 1.0f }, { 1.0f, 1.0f, 1.0f, 1.0f } }, 
    { { -0.885f, 0.885f, 0.0f, 1.0f }, { 0.0f, 0.0f, 1.0f, 1.0f } }, 
    { { 0.885f, -0.885f, 0.0f, 1.0f }, { 0.0f, 1.0f, 0.0f, 1.0f } } 
}; 

我用Java,所以這種事情,我認爲這是不可能的C.我怎樣才能做到以下幾點:

float temp1 = -0.04f; 
float temp2 = -0.08f; 
float temp3[] = { -0.885f, 0.885f, 0.0f, 1.0f }; 

Vertex axisVertices3[] = 
{ 
    { { temp1 , temp2 , 0.0f, 1.0f }, { 1.0f, 1.0f, 1.0f, 1.0f } }, 
    { temp3, { 0.0f, 0.0f, 1.0f, 1.0f } }, 
    { { 0.885f, -0.885f, 0.0f, 1.0f }, { 0.0f, 1.0f, 0.0f, 1.0f } } 
}; 
+0

你不能聲明'Vertex axisVertices [3];'然後用初始化語句顯式地填充它嗎? – 2013-04-20 18:22:55

+1

如果初始化後不需要這些變量,請嘗試使用宏... – Macmade 2013-04-20 18:23:06

+0

我不知道如何在C中做到這一點。在java中,我們可以做到這一點,但與C我不能。我想知道是否有辦法做到這一點。 – 2013-04-20 18:25:54

回答

0

這工作:

Vertex axisVertices3[] = 
{ 
    { { temp1 , temp2 , 0.0f, 1.0f }, { 1.0f, 1.0f, 1.0f, 1.0f } }, 
    { {temp3[0],temp3[1],temp3[2],temp3[3]}, { 0.0f, 0.0f, 1.0f, 1.0f } }, 
    { { 0.885f, -0.885f, 0.0f, 1.0f }, { 0.0f, 1.0f, 0.0f, 1.0f } } 
}; 

這不是正是你想實現什麼,但它足夠近。