我遇到了这段代码,使用g++编译没有问题。我能理解它的作用,但是这是有效的C++代码还是扩展代码?
const char* msgs[] =
{
[0] = "message0",
[1] = "message1"
};
我遇到了这段代码,使用g++编译没有问题。我能理解它的作用,但是这是有效的C++代码还是扩展代码?
const char* msgs[] =
{
[0] = "message0",
[1] = "message1"
};
这是合法的C语法。在C语言中,您可以使用所谓的指示符。
designator:
[ constant-expression ]
. identifier
再来一个例子
struct A
{
int x;
int y;
} a = { .x = 10, .y = 20 };
但在C++中这是无效的。在C++中,你应该写成
const char* msgs[] =
{
"message0",
"message1"
};