在 Visual Studio 2005 中收到一个奇怪的警告:
警告 C4133:“=”:不兼容的类型 - 从“PointNode *”到“PointNode *”
结构定义:
struct PointNode {
int x;
int y;
struct PointNode *next;
};
声明和使用:
struct PointNode* pPointHead;
...
pPointHead = pPointHead->next;
警告本身说它们是相同的类型,为什么会提示?
(不幸的是我不能标记 C4133)
最佳答案
你的结构应该是这样的:
struct PointNode {
int x;
int y;
PointNode *next; // remove struct keyword
};
像这样声明和使用:
PointNode *pPointHead; // remove struct keyword
pPointHead->next;
当您添加 struct 关键字时,编译器认为您正在声明一个具有相同名称的新的不同结构。
关于visual-studio - Visual Studio 警告 C4133,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7086254/