2009-04-17 96 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