TIP1. struct多种声明定义写法的小结

转载from: http://blog.vckbase.com/smileonce/archive/2005/01/15/2578.aspx

详细讲解struct这个容易混淆的写法的书是有的,《C专家编程》中就有详细的描述。可惜大家喜欢问问题有甚于喜欢看书,于是BBS上泛滥着前人早已经解决、说明清楚的问题。哎,中国勤学好问者的悲哀。这里简要说明一下struct,为大家省钱。

/* struct.c
* 本程序演示了struct的种种写法。注意,所有这些写法都能编译通过
* author: smileonce
* date : 2005-01-14
*/



// 这种写法是最要命的,但是它却可以通过, 最后面那个foo是结构体的实例
struct foo
{

int
foo;
}
foo;

// 有了typedef,意义明显与上面不同,注意的是struct后面那个标签可以不写,最后面那个bar是匿名结构体的别名
typedef struct
{

int
bar;
}
bar;

// 这种写法是最没人用的,因为它的定义是一次性的,struct1是一个匿名struct的实例
struct
{

int
aaa;
}
mystruct1;

//最常用的写法,清晰不言自明,my_struct_tag是结构体标签,my_struct_type是struct my_struct_tag的别名
typedef struct my_struct_tag
{

int
aaa;
}
my_struct_type;

// 下面两种定义的写法都可以,当然使用typedef定义的写法更简洁些
my_struct_type mystruct2; //通过typedef定义的结构别名来定义变量
struct my_struct_tag mystruct3; //通过结构标签定义变量


int
main(int argc, char *argv[])
{

return
0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值