免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wheniwasyoung
打印 上一主题 下一主题

[C] typedef这两种写法是一样的吗 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-01-12 13:27 |只看该作者
貌似第一种是匿名的吧。。。

论坛徽章:
0
12 [报告]
发表于 2011-01-12 17:01 |只看该作者
区别在于这两种的意义,也就是编写者想表达的隐义,而不仅是使用上的区别。

使用上的区别 见 5 楼

论坛徽章:
3
天蝎座
日期:2014-10-25 13:44:312015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:48:31
13 [报告]
发表于 2011-01-12 20:22 |只看该作者
用的时候是有区别的,

举个例子:两个结构体如下关系编译不过吧(VC,C语言)

tpyedef  struct  t_a_xx
{
       T_B  *pt_b;
       /* struct  t_b_xx *b 这样就能编译过 */

}T_A;

tpyedef  struct  t_b_xx
{
       T_A  *pt_a;   

}T_B;

论坛徽章:
1
程序设计版块每日发帖之星
日期:2016-06-04 06:20:00
14 [报告]
发表于 2011-01-12 21:15 |只看该作者
用的时候是有区别的,

举个例子:两个结构体如下关系编译不过吧(VC,C语言)

tpyedef  struct  t_a_ ...
ilex 发表于 2011-01-12 20:22



    haha,以前见过这种嵌套的考题。。。

如果我的理解没错的话。。其实是不一样的。。。
好像5L的XD已经说了。。

论坛徽章:
0
15 [报告]
发表于 2011-01-15 12:04 |只看该作者
本帖最后由 snowboy9859 于 2011-01-15 21:26 编辑

第一种写法就相当于练葵花宝典,一次就没了,不能再定义其他的类似于array的变量,而第二种可以重复利用;
建议这样定义:
typedef struct  array{
        size_t *sorted;

        size_t used;
        size_t size;

        size_t unique_ndx;

};

struct array a,b,c;

论坛徽章:
0
16 [报告]
发表于 2011-01-15 17:04 |只看该作者
还是加上名字比较好,毕竟可以
typedef struct something {
    struct something *next;
} something_t;

论坛徽章:
0
17 [报告]
发表于 2011-01-15 17:09 |只看该作者
回复 15# snowboy9859


    编译通不过吧

论坛徽章:
0
18 [报告]
发表于 2011-01-15 19:37 |只看该作者
回复 17# KBTiller


    你觉得不能这样引用?

论坛徽章:
0
19 [报告]
发表于 2011-01-15 20:08 |只看该作者
回复 18# snowboy9859


    我只是觉得15楼的“}”后面还应该有个“;”。
    当然我没到编译器上试过。如果说错了请原谅。

论坛徽章:
0
20 [报告]
发表于 2011-01-15 20:12 |只看该作者
本帖最后由 KBTiller 于 2011-01-18 09:40 编辑
还是加上名字比较好,毕竟可以
typedef struct something {
    struct something *next;
} something_t ...
bluewaterray 发表于 2011-01-15 17:04



    能这样当然很好,但有很多时候为“something”取名是非常费劲的,尤其是把它和“something_t”区分开就更费劲
    所以我宁愿
    typedef struct {
        struct something *next;
    } something_t
    我觉得这样更实惠些,至少不用煞费苦心地取两个名字了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP