结构体还可以这样赋值?
struct usb_drv_info drivers[]={
[0] = {.name = "abc",
.type = "USB_SERIAL,"},
[1] = {.name = "def",
.type = "USB_WIFI,"},
}
今天看代码是看到这样的赋值方式,网上找了下也没看到,假如哪位大哥大姐知道麻烦解释下,最后能给个相关资料的链接,谢谢了!!!
[解决办法]
木见过,难道是新标准或C99里的?
[解决办法]
C99标准的指定初始化。
[解决办法]
{.成员 = xxx,
.成员 = xxx
}
这种方式比较多了,至少linux内核中都是这样的。在C99标准中规定的。
对数组中的任意元素赋值的方法
在ISO C99中,你可以按任何顺序给出这些元素,指明它们对应的数组的下标或结构体的成员名,并且GNU C也把这作为C89模式下的一个扩展。这个扩展没有在GNU C++中实现。
比如:
为了指定一个数组下标,在元素值的前面写上“[index] =”。比如:
int a[6] = { [4] = 29, [2] = 15 };