易截截图软件、单文件、免安装、纯绿色、仅160KB

linux结构体中一个0个元素的数组

__packed struct usb_key_descriptor {
__u8  bLength;
__u8  bDescriptorType;

__u8  tTKID[3];
__u8  bReserved;
__u8  bKeyData[0];
}; __attribute__((packed));
请问linux中为什么在此结构体中有0个元素的数组__u8  bKeyData[0];
这个有什么作用?
哈,我还见过这样的代码:
C/C++ code:

do
{
int video = 10; //这是个例子!
//...........
.......
}while(0);


哈,不知道为什么!

google 柔性数组 或 flexible array

http://blog.csdn.net/supermegaboy/archive/2009/11/23/4854939.aspx
看上面的链接吧,大牛写的。

GNU C允许零长度数组,在定义变长对象的头结构时,这个特性非常有用。

struct var_data s

{

      int len;

      char data[0];

};

char data[0]仅仅意味着程序中通过var_data的结构体实例的data[index]成员可以访问len之后的第index个地址,并没有为data[0]分配内存。

假设struct var_data的数据域保存在struct var_data紧接着的内存区域,通过如下代码可以遍历这些数据:

struct var_data s;

...

for (i=0;i <s.len;i++)

{

    printf("%02x",s.data[i]);

}




相关问答:

linux环境下gethostbyname函数问题 - C/C++ / C语言

写了个测试程序如下
   
  struct hostent *hp; 
char AlarmDevIP[20];  
  int x2;

hp = gethostbyname("www.google.com");
if (hp)
{ ......

linux命令大全 - Linux/Unix社区 / UNIX文化

咨询QQ:269562808
bzip2recover
功能说明:用来修复损坏的.bz2文件。
语法:bzip2recover[.bz2压缩文件]
补充说明:bzip2是以区块的方式来压缩文件,每个区块视为独立的单位。因此,当某一区
块损坏时,便可利 ......

是选win2008还是suse linux、redhat、centos,犹豫中

引用内容vsking 2009-12-25 22:56:52
现在是win2008和iis8的时代了,不要还停留在iis5时代,win2008被评为十佳操作系统之首不是偶然的,你要是..
我的问题是:
最近想买个服务器,看了dell上的系统定制选择,一些 ......

linux下tomcat的多域名配置

我的文件是放在webapps下面
在 /etc/hosts 加入了 127.0.0.1 www.abc.com
conf/server.xml 加了
<Host name="www.abc.com" appBase="webapps" unpackWARs="true" autoDepl ......

linux程序启动问题

我用的Linux系统是Fedora7,是一个声卡采集然后发送数据到服务器的下位机程序,我在/etc/rc.d/rc.local里面加了开机启动的路径,程序直接在账户登录之前就启动了,而且里面的线程跑的也有问题,不知道怎么回事?是我 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号