这两种声明结构的方式有什么区别?
第一种方式:
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