我正在按照此指南设置基本的套接字服务器: https://www.geeksforgeeks.org/socket-programming-cc/
所以,我知道,当您使用关键字struct时,它是用来定义数据结构的,但是如您在示例中所看到的,它使用structure关键字创建了sockaddr_in的实例,但它不是用于创建/定义结构的,这是创建一个实例。
因此,我想知道为什么在本指南中定义sockaddr_in结构的原因是,他在前面放置了'structure'关键字,而我尝试不使用它,并且编译正确。
背后有什么原因吗?
答案 0 :(得分:7)
在声明结构实例来自C时使用struct
。在C ++中是可选的。
答案 1 :(得分:2)
链接中显示的源文件都是用C而不是C ++编写的。在C语言中,当声明一个结构实例时,您需要像这样的struct关键字。
struct sockaddr_in address;
在C ++中,您不再需要这样做。
答案 2 :(得分:1)
您提到的文章是用C编写的,在C中创建结构并尝试将其用作类型时,必须提及它是结构。如果您想放弃该结构,则可以阅读有关typedef
运算符的更多信息。