struct declaration

后端 未结 2 1118
礼貌的吻别
礼貌的吻别 2021-01-26 07:47

What is the difference between these 2 ways of declaring a struct?

First way:

struct x {};

Second way:

struct _x {} x;
         


        
相关标签:
2条回答
  • 2021-01-26 08:23

    The second way declares a variable named the type struct _x and a variable of this type named x. The first one only declares the type struct x.

    The second way is essentially the same as

    struct _x{};    // define a type
    struct _x x;    // allocate a variable of type struct _x
    
    0 讨论(0)
  • 2021-01-26 08:38

    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.

    0 讨论(0)
提交回复
热议问题