C++ 数组和变量没有预定义的内容
我为我的LED立方体制作了一个Animation.cpp,每个帧和每层包含一个uint16_t的二维数组。我在.cpp中初始化数组,并且还有一个包含帧数的变量。但是当它运行时,数组似乎只有随机数据(来自ram),int w/帧数量为0 链接到cpp: 链接到标题:C++ 数组和变量没有预定义的内容,c++,arrays,arduino,avr,stdint,C++,Arrays,Arduino,Avr,Stdint,我为我的LED立方体制作了一个Animation.cpp,每个帧和每层包含一个uint16_t的二维数组。我在.cpp中初始化数组,并且还有一个包含帧数的变量。但是当它运行时,数组似乎只有随机数据(来自ram),int w/帧数量为0 链接到cpp: 链接到标题: 我基本上是CPP/GCC的初学者,那么,我做错了什么呢?在您的类中对帧的定义与您在CPP中定义的帧的定义不同。 尝试在动画类构造函数中初始化帧。在C++11中,可以直接执行以下操作: class Animation { publi
我基本上是CPP/GCC的初学者,那么,我做错了什么呢?在您的类中对
帧的定义与您在CPP中定义的帧的定义不同。
尝试在动画
类构造函数中初始化帧。在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;
};
您的成员和全局变量是不相关的(它们只是共享相同的名称)。如何使它们相互关联?添加public作为前缀?如果我使用public:在cpp中,它总是说“在‘public’之前预期的非限定id”。在较低版本中有没有办法做到这一点?