结构中的差异?

 wangtao 发布于 2023-02-10 10:02

有什么区别:

typedef struct part 
{
   int a;
} Part;

typedef struct 
{
   int a;
} Part;

我知道第二个是"匿名",但它们有什么不同吗?

2 个回答
  • 除了Mike Seymour的回答,这是一个原因的例子:

    链接列表例如

    // this works
    typedef struct part {
        struct part *next;
    } Part;
    
    // this doesn't work
    typedef struct {
        struct Part *next;
    } Part;
    // neither this
    typedef struct {
        Part *next;
    } Part;
    

    2023-02-10 10:05 回答
  • 在这两种情况下,您都定义了一种结构类型,以及一种称为Part该类型的类型别名.

    在第一种情况下,您还定义了一个结构名称part,因此结构类型也可以称为struct part或仅part在C++中.

    在第二种情况下,结构本身没有名称(因此是"匿名"),并且只能通过类型别名来引用.由于该别名仅结构定义之后声明,因此结构不能引用自身.

    2023-02-10 10:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有