2011-08-05 34 views
5

Tôi đang cố gắng để làm điều này:Mảng loại có đầy đủ yếu tố loại

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

Nhưng trình biên dịch sẽ không cho phép tôi. :?! (Có gì sai với lời tuyên bố này Nhờ sự giúp đỡ của bạn

Trả lời

14

Hoặc làm:


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

HOẶC


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

Trong C, struct tên nằm trong một không gian tên khác hơn typedef s.

Tất nhiên bạn cũng có thể sử dụng typedef struct coords { float x; float y; } coords; và sử dụng struct coords hoặc coords. Trong trường hợp này, điều đó không quan trọng bạn chọn gì, nhưng đối với cấu trúc tự tham khảo bạn cần có tên cấu trúc:

struct list_node { 
    struct list_node* next; // reference this structure type - need struct name  
    void * val; 
}; 
Các vấn đề liên quan