2009-04-17 139 views
1

有人可以確認在目標C中不允許嵌套的C結構。iPhone/Objective C嵌套的C結構

而嵌套結構,我的意思是以下;

struct Tex2D 
{ 
    GLfloat u; 
    GLfloat v; 
}; 

// quad uv cords 
struct TexQuad 
{ 
    Tex2D uv[4]; 
}; 

我似乎有編譯這個問題的各種問題。很難找到任何文檔,因爲這是完全有效的c代碼。

乾杯 豐富

+0

也許說代碼*看起來完美有效,說明你很長一段時間沒有完成C語言,或者改寫這個問題可以防止倒票。總的來說,這是一個很好的編程問題,它剛開始並不像解釋那樣。 :-) – 2009-06-18 06:57:18

回答

10

你在那裏有沒有有效的C代碼。請記住,在C,當你聲明結構體變量,你必須明確地提到它作爲一個結構,這樣的:

struct StructType myStruct; 

我已經看到了這個解決最常見的方式是捆綁結構聲明與一個typedef,就像這樣:

typedef struct _Tex2D 
{ 
    GLfloat  u; 
    GLfloat  v; 
} Tex2D; 

// quad uv cords 
typedef struct _TexQuad 
{ 
    Tex2D  uv[4]; 
} TexQuad; 

這樣一來,你就可以不必使用struct關鍵字創建新的結構變量。

+0

謝謝,該死的我在10年左右沒有完成C ...我已經習慣了C++。謝謝。兩個答案都是正確的,但我只能對它們打勾。我勾選了這個,因爲它更冗長。 – Rich 2009-04-17 08:43:39

5

就象在C中你必須引用結構時使用的關鍵字結構。 :-)

// quad uv cords 
struct TexQuad 
{ 
    struct Tex2D  uv[4]; 
}; 

工程!

+0

謝謝,該死的我在10年左右沒有做過C ......我已經習慣了C++。謝謝。兩個答案都是正確的,但我只能對它們打勾。我勾選了下面的內容,因爲它更冗長。 – Rich 2009-04-17 08:42:11