| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 501 人关注过本帖
标题:这个写法是什么意思?书上没有啊……
只看楼主 加入收藏
dreamofgod
Rank: 5Rank: 5
等 级:职业侠客
帖 子:194
专家分:341
注 册:2011-8-16
结帖率:95.24%
收藏
已结贴  问题点数:20 回复次数:10 
这个写法是什么意思?书上没有啊……
这个写法…书上没有啊。
程序代码:
//我在MSDN上看到的MIXERCONTROLDETAILS自定义类型的定义
typedef struct {
  DWORD  cbStruct;
  DWORD  dwControlID;
  DWORD  cChannels;
  union {//union这块什么意思?在自定义变量中的自定义变量?
    HWND  hwndOwner;
    DWORD cMultipleItems;
  } ;
  DWORD  cbDetails;
  LPVOID paDetails;
} MIXERCONTROLDETAILS;
2011-09-11 11:43
编程的乐趣
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:229
专家分:1027
注 册:2011-4-4
收藏
得分:0 
c吗
2011-09-11 11:54
zhuouke
Rank: 2
来 自:陕西宝鸡
等 级:论坛游民
帖 子:22
专家分:15
注 册:2011-9-10
收藏
得分:0 
不懂啊.....汗汗...新手一个
2011-09-11 11:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:20 
是的,結構裏有一個聯合變量。

授人以渔,不授人以鱼。
2011-09-11 11:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
順便說一句,學編程,不是要書上有才懂的。

關鍵是原理!

授人以渔,不授人以鱼。
2011-09-11 12:00
LennyMogwai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:15
注 册:2011-7-24
收藏
得分:0 
这个就是结构体中包含一个联合体……呵呵……

按这几句就是这么理解的……
2011-09-11 12:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
當struct中嵌入code的時候,就是C++的class,無非是存儲器中的一段封閉區間而已,沒什麽不可理解的。

授人以渔,不授人以鱼。
2011-09-11 13:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
數組,就是最簡單的結構體系,因爲它的每個元素都是同類的。當元素不同類時,就成了結構体(在某些語言中允許數組的各個元素不是同一類型,就是這樣實現的)。一旦元素是函數(函數是一段被視爲代碼的數據),那麽就是最複雜的元素類型。三种不同層次的結構可以反復嵌套,即可構成更複雜的數據結構——以目前來看似乎是任意複雜都能滿足。一旦明白了這個原理,任督二脈基本上就通了。學編程,關鍵是領悟到這些東西,scanf()中爲什麽會在鍵盤緩衝區留下垃圾之類,是等而下之的,至於(i++,++i)等於多少,無聊至極(腦袋沒問題的人都不會想到寫出這樣的代碼)。

授人以渔,不授人以鱼。
2011-09-11 13:43
dreamofgod
Rank: 5Rank: 5
等 级:职业侠客
帖 子:194
专家分:341
注 册:2011-8-16
收藏
得分:0 
发帖之后发现union字体颜色变了,原来是个关键字……

一个单片机就让我头疼不已~~~
2011-09-11 14:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
union,其實並不新鮮,我們剛接觸C的字符數據類型就已經學到了,只不過書上沒告訴你這一點而已。對一個byte的數據,它是什麽,視乎我們如何看待,當認爲這是某個字符的ASCII碼時,它是字符,當認爲這是一個帶(或不帶)符號的整數時,它是數值,但無論你如何看待,它的實際形態並沒有變化,始終是那一串二進制數字。

聯合數據結構就是這樣的東西。對
union
{
    HWND  hwndOwner;
    DWORD cMultipleItems;
}
若你視一個32位數據為HWND,則它是一個句柄;若非,它也可以是一個雙字節的某種元素。不管你如何看待,它總是一個32位的數據。

授人以渔,不授人以鱼。
2011-09-11 14:08
快速回复:这个写法是什么意思?书上没有啊……
数据加载中...
 
   



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

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