0

Is there any benefit in typedef-ing the same identifier as shown below:

typedef struct Struct_name
{
  //something....
} Struct_name;

I have come across this style mostly with struct

Chief A
  • 510
  • 10
  • 24

1 Answers1

4

C++ already allows you to refer to struct Struct_name as Struct_name. But it has a special rule that permits this alias to declare the same identifier to Struct_name via typedef.

The reason is C compatibility. In C, struct Struct_name can only be referred to as Struct_name when that typedef is present. So what you see allows one to put this structure in a header that is included by both C and C++ code. Thus letting both code bases refer to the type as both struct Struct_name and Struct_name.

StoryTeller - Unslander Monica
  • 165,132
  • 21
  • 377
  • 458