首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

构造体还可以这样赋值

2012-11-08 
结构体还可以这样赋值?struct usb_drv_info drivers[]{[0] {.name abc,.type USB_SERIAL,},[1]

结构体还可以这样赋值?
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 };

热点排行