1

有人可以确认目标 C 中不允许嵌套 C 结构吗?

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

struct Tex2D
{
    GLfloat u;
    GLfloat v;
};

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

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

干杯丰富

4

2 回答 2

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关键字。

于 2009-04-17T08:36:00.377 回答
5

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

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

作品!

于 2009-04-17T08:33:30.727 回答