弱弱的请教一个问题,请大家不要嘲笑我
侯捷的《深入浅出MFC》第2版,第一章有一小节叫“消息映射的雏形”。里面是这样写的
定义一个MSGMAP_ENTRY结构
struct MSGMAP_ENTRY{
  UINT nMessage;
  LONG (*pfn) (HWND, UINT, WPARAM, LPARAM);
};

组织两个数组_messageEntries[].........//消息与处理例程的对照表格
struct MSGMAP_ENTRY _messageEntries[]=
{
   WM_CREATE, OnCreate;
   WM_PAINT,  OnPaint;
   WM_SIZE,   OnSize,
   .......
};
这段我就不太明白了,给结构体赋值不是应该这样的么struct MSGMAP_ENTRY _messageEntries[]=
{
   {WM_CREATE, OnCreate,}
   {WM_PAINT,  OnPaint,}
   {WM_SIZE,   OnSize,}
   .......
};大家给我讲讲吧~

解决方案 »

  1.   

    呵呵,应该都是逗号,大括号你们不用再加括号,应该MSGMAP_ENTRY本来就是两个变量,编译器会自动把WM_CREATE, OnCreate赋值给_messageEntries[0]。WM_PAINT, OnPaint赋值给_messageEntries[1]……
      

  2.   

    也可以像你下面写的那样写
    struct MSGMAP_ENTRY _messageEntries[]=
    {
      {WM_CREATE, OnCreate},
      {WM_PAINT, OnPaint},
      {WM_SIZE, OnSize}, //  .......
    };
      

  3.   

    类似这个:
    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
     struct ma1 
     {
      int a;
      string b;
     };
     struct ma1 ma2={12,"sdfjksd"};       //定义一个结构体
     cout<<ma2.a<<ma2.b<<endl;
     struct ma1 ma3[]={12,"sdfjksd",13,"hjsdjsdfh",14,"sdfhkj"};  //定义3个结构体,一个结构体数组
     for(int i=0;i<3;i++)
      cout<<ma3[i].a<<ma3[i].b<<endl;
     return 0;
    }