MFC 结构体赋值 出现问题
大家好,我是新手.请大家多多关照
今天在练习一个MFC程序时,我发现了一个问题.
我在VIEW类的.h头文件里首先定义了2个结构体
typedef struct
{
intrect[4];
}RectPIC;
typedef struct
{
RectPICTransferImage[4];
int TansferPoint;
}MyObject;
之后在VIEW类的.CPP文件里,我想建立个结构体并对其赋值.CPP文件在自动生成时已经包含.h.
首先我在所有其他函数外
MyObject m_stuff[6]={0};
生成一个此结构体的数组,并没有问题.然而之后.我在所有函数外写下
m_stuff[0].TansferPoint=1;
却出现编译问题
D:\复件 MoveBlockver3CPL\MoveBlockver3View.cpp(49) : error C2466: cannot allocate an array of constant size 0
D:\复件 MoveBlockver3CPL\MoveBlockver3View.cpp(49) : error C2143: syntax error : missing '; ' before '. '
D:\复件 MoveBlockver3CPL\MoveBlockver3View.cpp(49) : error C2501: 'm_stuff ' : missing storage-class or type specifiers
D:\复件 MoveBlockver3CPL\MoveBlockver3View.cpp(49) : error C2371: 'm_stuff ' : redefinition; different basic types
D:\复件 MoveBlockver3CPL\MoveBlockver3View.cpp(48) : see declaration of 'm_stuff '
D:\复件 MoveBlockver3CPL\MoveBlockver3View.cpp(49) : error C2143: syntax error : missing '; ' before '. '
但将 "m_stuff[0].TansferPoint=1; "写入构造函数的语句却编译通过.
CMoveBlockver3View::CMoveBlockver3View()
{
// TODO: add construction code here
m_stuff[0].TansferPoint=1;
}
我想知道为什么,第一次发帖子,恳请大家帮助
[解决办法]
首先我在所有其他函数外
MyObject m_stuff[6]={0};
------------
这里是定义全局变量并初始化,没问题
生成一个此结构体的数组,并没有问题.然而之后.我在所有函数外写下
m_stuff[0].TansferPoint=1;
------------------
这里是赋值,赋值必须在函数体内。