这两种声明结构的方式之间有什么区别?
第一种方式:
struct x {};
第二种方式:
struct _x {} x;
答案 0 :(得分:2)
第一个仅定义类型struct x
。第二个定义了类型struct _x
,定义了一个名为x
的类型的变量。
虽然它可能不是你想到的,但是在文件范围内保留以_x
这样的下划线开头的名称,所以除非这是在其他范围内,否则第二个具有未定义的行为。
答案 1 :(得分:2)
第二种方式声明一个名为struct _x
的变量,这个名为x
的变量。第一个只声明类型struct x
。
第二种方式与
基本相同struct _x{}; // define a type
struct _x x; // allocate a variable of type struct _x