这两种声明结构的方式有什么区别?
第一种方式:
struct x {};
第二种方式:
struct _x {} x;
第一个仅定义类型struct x。第二个定义了类型struct _x 并定义了一个名为 的类型的变量x。
虽然这可能不是您的想法,但以下划线开头的名称_x在文件范围内保留,因此除非它在其他范围内,否则第二个具有未定义的行为。
第二种方式声明了一个名为 type的变量struct _x 和一个名为x. 第一个仅声明类型struct x。
第二种方式基本相同
struct _x{}; // define a type
struct _x x; // allocate a variable of type struct _x