C++ struct keyword usage [duplicate]

2019-09-21 17:30发布

问题:

This question already has an answer here:

  • Difference between 'struct' and 'typedef struct' in C++? 8 answers

I'm setting up a basic socket server following this guide: https://www.geeksforgeeks.org/socket-programming-cc/

So, I know that when you use the keyword struct it's to define a data structure, but as you can see in the example, it creates an instance of sockaddr_in using the structure keyword, but it's not for creating/defining the structure, it's to create an instance.

So I'm wondering why in this guide to define a sockaddr_in structure he puts the 'structure' keyword before, I tried it without and it compiles all correctly.

Is there any reason behind?

回答1:

using struct when declaring an instance of a struct comes from C. It is optional in C++.



回答2:

The source files shown in your link are both written in C, not C++. In C, when declaring an instance of a struct, you need the struct keyword, like this.

struct sockaddr_in address;

In C++ you don't need to do this anymore.



回答3:

The article that you've mentioned is written in C, which in C when you create a struct and you try to use it as a type, you have to mention that it's a struct. If you want to give up on the struct, you can read more about the typedef operator.



标签: c++ struct