如何初始化数组并将其作为参数传递而不声明它?我想在不使用中间数组color
的情况下在一行中编写以下内容。
unsigned char color[3] = {100, 20, 0};
paintWithColor(color);
该函数声明为void paintWithColor( const unsigned char* )
。
以下不起作用:
paintWithColor({100,20,0});
如果我有任何错误,我很抱歉。
答案 0 :(得分:2)
使用C ++ 11,您可以使用初始化列表的重载:
#include <iostream>
void paintWithColor(const unsigned char* ) {
std::cout << "Painting\n";
}
void paintWithColor(std::initializer_list<unsigned char> colors) {
paintWithColor(colors.begin());
}
int main()
{
paintWithColor({100,20,0});
}
注意:这适用于MSVC 2013(请参阅:http://blogs.msdn.com/b/vcblog/archive/2013/12/02/c-11-14-core-language-features-in-vs-2013-and-the-nov-2013-ctp.aspx)