gpt4 book ai didi

C++ typedef 和 struct 问题

转载 作者:太空宇宙 更新时间:2023-11-04 15:28:12 25 4
gpt4 key购买 nike

typedef struct 
{
int y;
int weight;
struct edgenode * next;
}edgenode;

此代码给出错误:'edgenode':重新定义;不同的基本类型

它在 C 代码中运行良好。

为什么?

最佳答案

因为你的结构没有名字!这个问题暗示了 C 的继承 - 代码是按照我编写的方式编写的。

纯 C++ 解决方案是:

struct edgenode
{
int y;
int weight;
edgenode *next;
};

这在 C 中不起作用。在 C 中,与问题一致,你会写:

typedef struct edgenode
{
int y;
int weight;
struct edgenode * next;
} edgenode;

现在你的结构有一个名字 - struct edgenode。当然,它还有一个 typedef - edgenode,但编译器在到达最后一个分号(大约)之前不知道该名称。你也可以这样写:

typedef struct edgenode edgenode;
struct edgenode
{
int y;
int weight;
edgenode *next;
};

关于C++ typedef 和 struct 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3440271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com