struct decodeUINT { // Structure associates UINT Code; // messages // with a function. LRESULT (*Fxn)(HWND, UINT, WPARAM, LPARAM); }; const struct decodeUINT MainMessages[] = { WM_PAINT, DoPaintMain, WM_DESTROY, DoDestroyMain, };
个人理解:
MainMessages[]申明了2个结构体变量,系统并不知道 Code 和 LRESULT (*Fxn)(HWND, UINT, WPARAM, LPARAM);,当对其进行赋值的时候,系统并不知道谁是谁,只是按照你赋值的顺序存储。
从而,后面的
const struct decodeUINT MainMessages[] = { WM_PAINT, DoPaintMain, WM_DESTROY, DoDestroyMain, };
实现了对多个结构体变量初始化的效果,有点像linux内核中用点来初始化结构体。
#if defined()
#if defined()和 #ifdef 的作用相同。
#if defined(MICRO) 用于测试MICRO是否被定义了。
所以,#if defined(MICRO)与#ifdef MICRO等价
版权申明:
转载文章请注明原文出处http://blog.csdn.net/feiyinzilgd/archive/2010/03/09/5362402.aspx
并请联系谭海燕本人或者前往谭海燕个人主页留言