在{}后面添加无符号整数数组 在C++中我能做这样的事情吗?或者我该怎么办?< /P> unsigned int code[180]; if ( somethings ) { code[] = {3150,1550,400,400,400,1150,450,350,400,400,400,1200,400,400,400,1150,400,400,400,400,400,1150,400,1200,400,1200,400,350,400,1200,400,400,400,1150,400,1200,400,1200,400,350,400,400,400,400,400,400,400,1150,400,1200,400,400,400,1150,400,1200,400,400,400,400,400,1150,400,400,400,400,400,1150,450,350,400,400,400,1200,400,1150,400,400,400,1200,400,1150,400,1200,400,1150,450,1150,400,1200,400,350,450,1150,400,400,400,1150,450,350,400,400,400,400,400,400,400,1150,400,400,400,1200,400,400,400,1150,400,1200,400,1150,400,1200,400,1200,400,350,400,400,400,1200,400,400,400,350,400,400,400,400,400,400,400,1150,400,1200,400,400,400,400,400,1150,400,1200,400,1150,450,1150,400,400,350,1200,450,350,400,1200,400,400,400,350,450,350,400,400,400,1200,400,350,450,1150,400,1000}; //irsend.sendRaw(code,sizeof(code)/sizeof(int),khz); }

在{}后面添加无符号整数数组 在C++中我能做这样的事情吗?或者我该怎么办?< /P> unsigned int code[180]; if ( somethings ) { code[] = {3150,1550,400,400,400,1150,450,350,400,400,400,1200,400,400,400,1150,400,400,400,400,400,1150,400,1200,400,1200,400,350,400,1200,400,400,400,1150,400,1200,400,1200,400,350,400,400,400,400,400,400,400,1150,400,1200,400,400,400,1150,400,1200,400,400,400,400,400,1150,400,400,400,400,400,1150,450,350,400,400,400,1200,400,1150,400,400,400,1200,400,1150,400,1200,400,1150,450,1150,400,1200,400,350,450,1150,400,400,400,1150,450,350,400,400,400,400,400,400,400,1150,400,400,400,1200,400,400,400,1150,400,1200,400,1150,400,1200,400,1200,400,350,400,400,400,1200,400,400,400,350,400,400,400,400,400,400,400,1150,400,1200,400,400,400,400,400,1150,400,1200,400,1150,450,1150,400,400,350,1200,450,350,400,1200,400,400,400,350,450,350,400,400,400,1200,400,350,450,1150,400,1000}; //irsend.sendRaw(code,sizeof(code)/sizeof(int),khz); },c++,C++,提前设置代码: unsigned int code[] = {3150,1550,400,400,400,1150,450,350,400,400,400,1200,400,400,400,1150,400,400,400,400,400,1150,400,1200,400,1200,400,350,400,1200,400,400,400,1150,400,1200,400,1200,400,350,400,400,400,400,400,400,400,1150,400,1200,400,4

提前设置代码:

unsigned int code[] = {3150,1550,400,400,400,1150,450,350,400,400,400,1200,400,400,400,1150,400,400,400,400,400,1150,400,1200,400,1200,400,350,400,1200,400,400,400,1150,400,1200,400,1200,400,350,400,400,400,400,400,400,400,1150,400,1200,400,400,400,1150,400,1200,400,400,400,400,400,1150,400,400,400,400,400,1150,450,350,400,400,400,1200,400,1150,400,400,400,1200,400,1150,400,1200,400,1150,450,1150,400,1200,400,350,450,1150,400,400,400,1150,450,350,400,400,400,400,400,400,400,1150,400,400,400,1200,400,400,400,1150,400,1200,400,1150,400,1200,400,1200,400,350,400,400,400,1200,400,400,400,350,400,400,400,400,400,400,400,1150,400,1200,400,400,400,400,400,1150,400,1200,400,1150,450,1150,400,400,350,1200,450,350,400,1200,400,400,400,350,450,350,400,400,400,1200,400,350,450,1150,400,1000};

if (strcmp((char*)data,"off") == 0) 
{
    // do stuff with the code here
    //irsend.sendRaw(code,sizeof(code)/sizeof(int),khz);
}

我认为不能在声明后使用{…}初始化数组。因此,使用一个临时数组来存储您的内容,并将内容存储到其中(如果这是您的用例)

这个

将是一个初始化,您不能在声明后在C++中做这样的事情。 正确的方法是:

const int code_if[] = { /* your numbers here */ };
int code[];
if ( /* something */ ) {
    code = code_if;
}

如果你真的需要移动数组,那么你应该使用MeMcPy*(),正如其他已经建议的。

< P>自从你标记了C++,我建议:

vector<int> code;

if( condition_1 )
    code = { 3,7,8 };
else if( condition_2 )
    code = { 9,11,34 };
矢量码;
如果(条件_1)
代码={3,7,8};
否则如果(条件2)
代码={9,11,34};
等等


它需要c++11来编译

您可以对数组使用
std::array
std::vector
,解决赋值问题。您可以使用<代码> STD::String 字符串,解决比较问题。我想您需要自己测试(创建一个新文件并编译它),或者如果必须使用C样式代码,则可以挖掘C++标准,创建全局/静态数组,并将其地址分配给指针。如果需要副本,请使用
std::memcpy
。但是,更喜欢在注释中提到C++容器。如果代码有预先确定的值,或者计算它们,那么我可以在里面设置代码[]的值吗?
const int code_if[] = { /* your numbers here */ };
int code[];
if ( /* something */ ) {
    code = code_if;
}
vector<int> code;

if( condition_1 )
    code = { 3,7,8 };
else if( condition_2 )
    code = { 9,11,34 };