-2

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?

too honest for this site
  • 12,050
  • 4
  • 30
  • 52
redigaffi
  • 429
  • 6
  • 22

3 Answers3

7

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

Eyal Cinamon
  • 939
  • 5
  • 16
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.

Kaldrr
  • 2,780
  • 8
  • 11
1

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.

Ido H Levi
  • 181
  • 9