| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 827 人关注过本帖
标题:请问下着俩个的区别
只看楼主 加入收藏
wrg0709
Rank: 1
来 自:ss
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-12-3
收藏
 问题点数:0 回复次数:6 
请问下着俩个的区别
typedef struct a
{......}b;

typedef struct
{......}b;
的区别
搜索更多相关主题的帖子: struct typedef 
2008-03-15 13:01
iverson817
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2008-3-13
收藏
得分:0 
前面一个意思是把一个数组struct a{。。。。。。。}
命名为b。
后一个意思是直接定义一个数组为a啊。
      我也是新手,可能解释的也不对啊·听听老手的意见;
多多参与嘛······
2008-03-15 14:08
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
/*这两个结构推了半天没推出来不同,期待强人*/
#include<stdio.h>
int main(void)
{
    /*第一段*/
    typedef struct
    {
        int num;
        int date;
    }b;
        
    b DAT;
    DAT.num=15;
    printf("%d ",DAT.num);
    
   
    /*第二段*/
    /*typedef struct a
    {
        int aaa;
        int bbb;
    }b;
    
    b DAT;
    DAT.aaa=15;
    printf("%d ",DAT.aaa);*/
    return 0;
}
2008-03-15 14:35
nobush
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-1-10
收藏
得分:0 
一樣的!
下面的情況用第一種方便:
ypedef struct a
    {
        int num;
        struct a* link;
    }b;
2008-03-15 16:15
qfyzy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:380
专家分:86
注 册:2008-2-17
收藏
得分:0 
关于struct
标准的定义是(不包括用typedef重新定义)
struct [结构名]{结构体内容}[结构体名];
[]内的东西可以不写,但建议写。结构名是定义使用的,比如
struct a{};
下面就可以用
struct a b;来定义一个a类型的结构体b;
struct a相当于int,float,char,double之类的关键字;
当然你可以直接用struct {}b;来定义结构体b,不过这样就没有办法再次定义了。
不过如果你用了typedef这两者就没有什么区别了,
比如typedef struct {}a;
下面就可以用a b;来定义结构体b。
曾经看过一个例子,
typedef struct foo{int foo;}foo;
有兴趣可以研究下。
这个和数组没有什么关系。

当对C的经验增加时,它会显的很好用.----Dennis M Ritche如是说
2008-03-15 18:52
hoodlum1980
Rank: 2
来 自:浙江大学
等 级:论坛游民
威 望:2
帖 子:289
专家分:23
注 册:2008-2-24
收藏
得分:0 
[bo]以下是引用 [un]wrg0709[/un] 在 2008-3-15 13:01 的发言:[/bo]

typedef struct a
{......}b;

typedef struct
{......}b;
的区别

如果你能找到他的区别才怪了呢。为什么要有a呢,a是结构体的名称,有了a,我们就可以这样声明一个变量:
a mystruct;
而不必这样:
struct {......} mystruct;
上面的第二种写法相当于:
typedef a b;
这样b就等效为a了。我们就可以这样声明变量了:
b mystruct;
当然,采用了第二种写法,a写不写都基本无关紧要了。

例如在PlatformSDK中的结构定义基本都是下面这样的形式:
typedef struct tagBITMAPINFOHEADER{
        DWORD      biSize;
        LONG       biWidth;
        LONG       biHeight;
        WORD       biPlanes;
        WORD       biBitCount;
        DWORD      biCompression;
        DWORD      biSizeImage;
        LONG       biXPelsPerMeter;
        LONG       biYPelsPerMeter;
        DWORD      biClrUsed;
        DWORD      biClrImportant;
} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;
上面同时定义了结构名称以及两种指向该结构的指针。
2008-03-16 02:38
wrg0709
Rank: 1
来 自:ss
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-12-3
收藏
得分:0 
谢谢啊

程序员的日子就是 泡面+电脑+床
2008-03-17 13:05
快速回复:请问下着俩个的区别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012119 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved