iPhone/Objective C嵌套C结构

Ric*_*ich 1 iphone nested objective-c data-structures

有人可以确认在目标C中不允许嵌套的C结构.

通过嵌套结构,我的意思是:

struct Tex2D
{
    GLfloat u;
    GLfloat v;
};

// quad uv cords
struct TexQuad
{
    Tex2D   uv[4];
};
Run Code Online (Sandbox Code Playgroud)

我似乎有各种各样的问题编译这个.很难找到任何关于此的文档,因为这是完全有效的c代码.

干杯里奇

hbw*_*hbw 10

你在那里没有有效的C代码.请记住,在C语言中,当您声明一个struct变量时,您必须将其显式引用为结构,如下所示:

struct StructType myStruct;
Run Code Online (Sandbox Code Playgroud)

我见过的最常见的解决方法是将struct声明与typedef捆绑在一起,如下所示:

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

// quad uv cords
typedef struct _TexQuad
{
    Tex2D       uv[4];
} TexQuad;
Run Code Online (Sandbox Code Playgroud)

这样,您就可以创建新的struct变量而无需使用struct关键字.


小智 5

与在C中一样,在引用结构时必须使用关键字struct.:-)

// quad uv cords
struct TexQuad
{
    struct Tex2D       uv[4];
};
Run Code Online (Sandbox Code Playgroud)

作品!