结构声明

时间:2012-11-30 18:47:16

标签: c struct

这两种声明结构的方式之间有什么区别?

第一种方式:

struct x {};

第二种方式:

struct _x {} x;

2 个答案:

答案 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