2011-08-05 125 views
5

我試圖做到這一點:數組類型具有不完整的元素類型

typedef struct { 
    float x; 
    float y; 
} coords; 
struct coords texCoordinates[] = { {420, 120}, {420, 180}}; 

但是編譯器不會讓我。 :?!(有什麼不對的聲明感謝您的幫助

回答

14

要麼是:


typedef struct { 
    float x; 
    float y; 
} coords; 
coords texCoordinates[] = { {420, 120}, {420, 180}}; 

OR


struct coords { 
    float x; 
    float y; 
}; 
struct coords texCoordinates[] = { {420, 120}, {420, 180}}; 

在C,struct名居住在比typedef個不同的命名空間。

當然你也可以使用typedef struct coords { float x; float y; } coords;並使用struct coordscoords。在這種情況下,選擇什麼並不重要,但對於自引用結構,您需要一個結構名稱:

struct list_node { 
    struct list_node* next; // reference this structure type - need struct name  
    void * val; 
}; 
相關問題