Visual Studio 警告 C4133

发布于 2024-11-30 10:53:49 字数 374 浏览 0 评论 0原文

在 Visual Studio 2005 中收到奇怪的警告:

警告 C4133: '=' : 不兼容的类型 - 从 'PointNode *' 到 'PointNode *'

结构定义:

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

声明和用法:

struct PointNode* pPointHead;
...

pPointHead = pPointHead->next;

警告本身说它们是相同的类型,为什么会抱怨?

(不幸的是我无法标记C4133)

getting a weird warning in Visual Studio 2005:

warning C4133: '=' : incompatible types - from 'PointNode *' to 'PointNode *'

struct definition:

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

declaration and usage:

struct PointNode* pPointHead;
...

pPointHead = pPointHead->next;

The warning itself says they are the same types, why would it complain?

(unfortunately i can't tag C4133)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蒲公英的约定 2024-12-07 10:53:49

您的结构应如下所示:

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

声明和使用如下:

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

当您添加 struct 关键字时,编译器认为您正在声明一个具有相同名称的新的不同结构。

Your struct should look like this:

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

Declare and use like this:

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

When you add the struct keyword, the compiler thinks that you are declaring a new different struct with the same name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文