C ++:Array,初始化程序无法确定大小

时间:2012-02-25 11:14:23

标签: c++ arrays

我试图在书中的样本后写一个消息地图。

这是我的代码:

typedef struct MsgMapEntry_t {  
    UINT nMessage;  
    LONG (*pFunc)(HWND, UINT, WPARAM, LPARAM);  
} MsgMapEntry_t;  

// Skip Lines  

LRESULT CALLBACK CyauShellWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)  
{
    static MsgMapEntry_t OnMsgMap[]=  
    (  
        // TODO Register MsgFunc here  
        WM_DESTROY, ExitApplication  
    );  

编译它,编译器发出错误:

  

D:\ Projects \ cyau \ cyau_pre3_20120225 \ cyau_main.cpp:116:15:警告:逗号运算符的左操作数无效[-Wunused-value]
  D:\ Projects \ cyau \ cyau_pre3_20120225 \ cyau_main.cpp:117:2:错误:初始化程序无法确定'OnMsgMap'的大小

那么,请如何纠正它。

2 个答案:

答案 0 :(得分:1)

数组初始值设定项使用大括号{ ... }而不是括号( ... )

答案 1 :(得分:0)

你需要两对花括号(一个用于数组,一个用于结构),而不是一对括号。

static MsgMapEntry_t OnMsgMap[]= { // start the array
    // TODO Register MsgFunc here  
    { // start the struct
    WM_DESTROY, ExitApplication
    } // end the struct; more data can go here after ','
}; // end the array