【问题标题】:C++ struct keyword usage [duplicate]C ++结构关键字用法[重复]
【发布时间】:2019-01-23 02:17:13
【问题描述】:

我正在按照本指南设置一个基本的套接字服务器: https://www.geeksforgeeks.org/socket-programming-cc/

所以,我知道当您使用关键字 struct 时,它是定义数据结构,但正如您在示例中看到的那样,它使用结构关键字创建 sockaddr_in 的实例,但不是用于创建/定义结构,就是创建一个实例。

所以我想知道为什么在本指南中定义一个 sockaddr_in 结构之前他放置了 'structure' 关键字,而我没有尝试它并且它编译正确。

背后有什么原因吗?

【问题讨论】:

  • 在 c 中,您需要在声明结构实例时放置关键字。 Iirc 它与生活在不同命名空间中的结构有关。几乎可以肯定某处有重复...
  • 好吧,不是最好的骗子,但答案说明了原因

标签: c++ struct


【解决方案1】:

在声明来自 C 的结构实例时使用 struct。在 C++ 中是可选的。

【讨论】:

    【解决方案2】:

    链接中显示的源文件都是用 C 编写的,而不是 C++。在 C 中,当声明结构的实例时,您需要 struct 关键字,如下所示。

    struct sockaddr_in address;
    

    在 C++ 中,您不再需要这样做了。

    【讨论】:

    • “需要”?我不知道 C,但我认为你仍然需要它
    【解决方案3】:

    您提到的文章是用 C 编写的,当您在 C 中创建一个结构并尝试将其用作类型时,您必须提到它是一个结构。如果你想放弃这个结构,你可以阅读更多关于typedef 操作符的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      相关资源
      最近更新 更多