结构体数组 初始化赋值的问题

ffpffp 2008-05-22 01:00:36
定义了一个结构体

struct RGB
{
short red;
short green;
short blue;
};

另外声明了两个结构体,和一个结构体数组,想在结构体数组初始化的时候,根据普通数组的赋值方法进行赋值

RGB oncolor,offcolor;
oncolor.red=255;
...
offcolor.blue=-255;

RGB case1[4][4]={
{oncolor,oncolor,oncolor,oncolor},
{oncolor,offcolor,oncolor,oncolor},
{oncolor,oncolor,offcolor,oncolor},
{oncolor,oncolor,offcolor,oncolor}
};


但是提示说error C2440: 'initializing' : cannot convert from 'struct CMyGenetic::RGB' to 'short'

如果用case1[0][0]=oncolor;这种方法的确可以,但是这个数组是4*4还好,后面还有20*20的,数组内容又是没有规律的。。。。
想到这点,眼前就一黑。。。。

有没有办法对其进行初始化呢?
比如在结构体里边定义个什么函数= =

请赐教~~
...全文
1071 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ffpffp 2008-05-22
  • 打赏
  • 举报
回复
恩,最后还是用了ls的方法,谢谢各位帮忙了
zgl7903 2008-05-22
  • 打赏
  • 举报
回复
定义类型的时候就赋值,需要常量

#define oncolor {255,0,0}
#define offcolor {0,0,-255}
// myRGB oncolor,offcolor;
// oncolor.red=255;
// offcolor.blue=-255;
myRGB case1[4][4]=
{
{oncolor,oncolor,oncolor,oncolor},
{oncolor,offcolor,oncolor,oncolor},
{oncolor,oncolor,offcolor,oncolor},
{oncolor,oncolor,offcolor,oncolor}
};
ffpffp 2008-05-22
  • 打赏
  • 举报
回复
error C2440: 'initializing' : cannot convert from 'struct CMyGenetic::myRGB' to 'short'

改成myRGB还是不行。。。。

关键是前面myRGB已经用了很多了= =现在想收,收不回来了。。。
leelittlelong 2008-05-22
  • 打赏
  • 举报
回复
赋值方法是正确的啊。呵呵
快乐鹦鹉 2008-05-22
  • 打赏
  • 举报
回复
struct RGB
{
short red;
short green;
short blue;
};
别用结构,用COLORREF类型就可以了。可以用GetRValue等函数分别获取颜色分量
zgl7903 2008-05-22
  • 打赏
  • 举报
回复
VC中RGB已经被定义为宏了
Declared in wingdi.h
#define RGB(r, g ,b) ((DWORD) (((BYTE) (r) | \
((WORD) (g) << 8)) | \
(((DWORD) (BYTE) (b)) << 16)))

改一个名字看看

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧