gpt4 book ai didi

c++ - 在 c 中键入不存在的结构

转载 作者:太空宇宙 更新时间:2023-11-03 10:41:54 24 4
gpt4 key购买 nike

我目前正在学习指针和结构体,下面的我看不懂

typedef struct at atom;
struct at {
int element = 5;
struct at *next;
}

为什么这段代码没有抛出错误?

当我使用

创建原子时
atom x;
printf("%d", x.element);

它将打印 5。

我不明白不存在结构的类型定义,它是如何工作的?

最佳答案

typedef struct at atom;

在这里,您声明一个名为atstruct 并给它一个atom 的typedef 。所以这是完全有效的 C。

struct at {
int element = 5;
struct at *next;
}

在这里,您正在定义您之前声明的结构at

注意:

重要的是要注意,在 C 中,您不能像此处那样在结构中初始化变量:

struct at {
int element = 5; // <---- Illegal in C
struct at *next;
}

但是,这在 C++ 中完全没问题,所以如果您尝试使用 C,请删除变量初始化,但如果您使用 C++,那么它就可以了。

关于c++ - 在 c 中键入不存在的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34123775/

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