gpt4 book ai didi

ios - typedef struct 并声明结构变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:50:15 24 4
gpt4 key购买 nike

目前我正在开发一个 iOS 应用程序,我在其中使用结构来存储一些数据。

我声明了这样一个结构:

typedef struct Message
{
int messageType;
char *data;
int length;
} Message;

但是当我需要声明一个变量时,我不小心这样写了:

struct Message *myMessage = NULL;

这工作正常,没有问题。

我的问题是为什么这一行没有显示任何问题?

两者:

struct Message *myMessage = NULL;

Message *myMessage = NULL;

工作正常。这是 typedef 的正确行为吗?为什么我使用 struct Message 没有报错?

最佳答案

是的,这是正确的。

关键字 struct 之后的名称称为“struct 标记”,与 typedef 别名不在同一“ namespace ”中。这就是为什么它们不会发生碰撞并产生某种错误的原因。

就是说,您应该从您的声明中删除标签,并使其成为:

typedef struct
{
int messageType;
char *data;
int length;
} Message;

没有必要引入不需要的名称,这也可以保护您免受这种混淆,因为之前没有名称可以编写 struct

关于ios - typedef struct 并声明结构变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17042690/

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