C语言小问题---结构体

来源:互联网 发布:unity3d lua 热更新 编辑:程序博客网 时间:2024/05/16 01:35

声明:C语言小问题系列 基本均来自《你必须知道的495个C语言问题》 一书   绝非原创哈  写下来 纯粹为了学习 也希望有更多的人可以看到 !

看下面的两个声明  有什么区别

struct x1 {....};

typedef  struct {....} x2;

第一种形式其实声明了一个结构标签(structure  tag)第二种声明了一个“类型定义”

其在定义结构体变量的时候不需要加上关键字struct   比如x2  B;

但是如果使用标签来声明的就得写struct  x1  B;

当然 也可以同时使用这两种方法  typedef  struct  x1 {...} x1;


最后 这种 struct x {......};

x A;是不对的   得用struct x  A;