What is the difference between these 2 ways of declaring a struct?
First way:
struct x {};
Second way:
struct _x {} x;
The first defines only the type struct x
. The second defines the type struct _x
and defines a variable of that type named x
.
Though it's probably not what you had in mind, names starting with an underscore like _x
are reserved at file scope, so unless this is inside some other scope, the second has undefined behavior.