我为我的LED立方体制作了一个Animation.cpp,每个帧和每一层包含一个2维的uint16_t数组。我在.cpp中初始化数组,并且还包含一个包含帧数的var。但是当它运行时,数组似乎只有随机数据(来自ram),而int w / frame的数量为0。
链接到cpp: http://hastebin.com/kunemopece.avrasm
链接到标题: http://hastebin.com/duvijipeya.vala
我几乎是CPP / GCC的初学者,所以,我做错了什么?
答案 0 :(得分:1)
您班级中frames
的定义是您在cpp中定义的frames
的不同集合。
尝试在Animation
类构造函数中初始化帧。
答案 1 :(得分:1)
在C ++ 11中,您可以直接执行此操作:
class Animation
{
public:
std::uint16_t frames[8][4] = {
{0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
{0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
{0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
{0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
{0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
{0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
{0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
{0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}
};
std::uint8_t currentFrame = 0;
};
在C ++ 03中,你必须使用构造函数:
class Animation
{
public:
Animation() : currentFrame(0)
{
for (int i = 0; i != 8; ++i) {
for (int j = 0; j != 4; ++j) {
frames[i][j] = 0xFFFF;
}
}
}
uint16_t frames[8][4];
uint8_t currentFrame;
};