2011-08-16 38 views
5

nhận được một cảnh báo lạ trong Visual Studio 2005:Visual Studio cảnh báo C4133

cảnh báo C4133: '=': loại không tương thích - từ 'PointNode *' thành 'PointNode *'

định nghĩa struct:

struct PointNode { 
    int x; 
    int y; 
    struct PointNode *next; 
}; 

khai và cách dùng:

struct PointNode* pPointHead; 
... 

pPointHead = pPointHead->next; 

cảnh báo tự nói họ là những cùng loại, tại sao nó sẽ phàn nàn?

(tiếc là tôi không thể tag C4133)

+0

VC++ 2005 biên soạn tiền phạt của nó, không có cảnh báo nào phát ra. Bạn đang sử dụng C++ hoặc C? – Ajay

+0

bằng cách sử dụng này trong một tập tin .c – user320781

Trả lời

5

struct của bạn sẽ trông như thế này:

struct PointNode { 
    int x; 
    int y; 
    PointNode *next; // remove struct keyword 
}; 

Declare và sử dụng như thế này:

PointNode *pPointHead; // remove struct keyword 
pPointHead->next; 

Khi bạn thêm từ khóa struct , trình biên dịch nghĩ rằng bạn đang khai báo một cấu trúc mới khác có cùng tên.

+0

mát mẻ, hoạt động, cảm ơn! – user320781

Các vấn đề liên quan