2009-04-17 4 views
1

누군가가 중첩 된 C 구조를 목적 C.아이폰/목표 C 중첩 된 C 구조

에 그리고 중첩 된 구조체에 의해 허용되지 않습니다 확인할 수 있습니다, 나는 다음과 같은 의미;

struct Tex2D 
{ 
    GLfloat u; 
    GLfloat v; 
}; 

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

나는 이것을 컴파일하는 데 모든 종류의 문제가있는 것 같습니다. 이것이 완벽하게 유효한 C 코드이므로이 문서를 찾는 것이 어렵습니다.

건배 C에서 리치

+0

아마도 코드가 * 오랫동안 C를하지 않았거나 질문의 ​​문구를 바꾸면 투표를 막을 수 있다고 말하는 것은 완벽합니다. 전반적으로 좋은 프로그래밍 질문입니다. 처음에는 설명과 다르게 보입니다. :-) –

답변

10

유효한 C 코드가 아닙니다. 나는이 해결 본 적이

struct StructType myStruct; 

가장 일반적인 방법으로 구조체 선언을 번들하는 것입니다 : 당신이 구조체 변수를 선언 할 때 C에서, 당신은 명시 적으로 다음과 같이 구조체로 참조해야 기억 이런 타입 정의는 :

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

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

그런 식으로, 당신은 다음 struct 키워드를 사용하지 않고도 새로운 구조체 변수를 만들 수 있습니다.

+0

고마워, 나는 약 10 년 만에 C를 해왔다. 나는 C++에 익숙해 져있다. 감사. 두 답은 모두 정확하지만 나는 그 중 하나만 틱할 수 있습니다. 좀더 자세한 내용을 보았을 때 나는 이것을 쳤다. – Rich

5

처럼 당신은 구조체를 참조 할 때 키워드 구조체를 사용해야합니다. :-)

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

Works!

+0

고마워, 나는 약 10 년 만에 C를 해본 적이 없다 ... 나는 C++에 익숙해 져있다. 감사. 두 답은 모두 정확하지만 나는 그 중 하나만 틱할 수 있습니다. 좀 더 자세한 내용을 보았을 때 나는 아래에 하나를 쳤다. – Rich