誰能幫我解決關於消息的幾個小問題


在深入淺出MFC中有這樣的代碼:
   struct MSGMAP_ENTRY _messageEntris[]=
{
    WM_CREATE,OnCreat,
    WM_SIZE,   OnSize,
    ……
}
請問struct不是定義結構用的嗎?可是他這里定義的卻是 數組。
   還有
   union MessageMapFunctions
{
  AFX_PMSG pfn;
 Bool   (AFX_MSG_CALL CWnd::*pfn_bD)(CDC*);
Bool   (AFX_MSG_CALL CWnd::*pfn_bD)(CDC*);
……
};
  說是一個函數的多種形式,是怎么回事,到底union是個什么東西?

6 个解决方案

#1


不會吧?
1、結構體數組,沒聽說過嗎?
2、union是什么東西,問問自己到底有沒有學過C?

#2


1、結構體數組,沒聽說過嗎?
2、問問自己,有沒有學過C?

#3


union是聯合,
union的所有變量使用同一存貯空間,以最大的空間為准..

#4


Unions are class types that can contain only one data element at a time (although the data element can be an array or a class type). The members of a union represent the kinds of data the union can contain. An object of union type requires enough storage to hold the largest member in its member-list.

#5


1、
struct MSGMAP_ENTRY _messageEntris[] //這里用的是純C的申明方式,C中申明結構體時,在結構體名前必須加上struct。這兒就是定義MSGMAP_ENTRY結構體的數組,在C++中去掉struct也不會出錯。

2、union就是聯合類型,表示多個不同類型的變量公用一個內存空間,MessageMapFunctions的定義里pfn,pfn_bD,其實都是同一個值的指針,只不過可以用不同的名稱來按照不同的類型來引用而已。

#6


謝謝了,我還有一個問題就是type-safe是什么意思?

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: