1

ネストされたC構造体がObjectiveCで許可されていないことを誰かが確認できますか?

ネストされた構造体とは、次のことを意味します。

struct Tex2D
{
    GLfloat u;
    GLfloat v;
};

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

これをコンパイルするのにいろいろな問題があるようです。これは完全に有効なcコードであるため、これに関するドキュメントを見つけるのは困難です。

乾杯リッチ

4

2 に答える 2

10

あなたが持っているものは有効なCコードではありません。Cでは、構造体変数を宣言するときに、次のように明示的に構造体として参照する必要があることに注意してください。

struct StructType myStruct;

これが解決されるのを私が見た最も一般的な方法は、次のようにstruct宣言を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 に答える