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]);
}
相关问答:
写了个测试程序如下
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
咨询QQ:269562808
bzip2recover
功能说明:用来修复损坏的.bz2文件。
语法:bzip2recover[.bz2压缩文件]
补充说明:bzip2是以区块的方式来压缩文件,每个区块视为独立的单位。因此,当某一区
块损坏时,便可利 ......
引用内容vsking 2009-12-25 22:56:52
现在是win2008和iis8的时代了,不要还停留在iis5时代,win2008被评为十佳操作系统之首不是偶然的,你要是..
我的问题是:
最近想买个服务器,看了dell上的系统定制选择,一些 ......
我的文件是放在webapps下面
在 /etc/hosts 加入了 127.0.0.1 www.abc.com
conf/server.xml 加了
<Host name="www.abc.com" appBase="webapps" unpackWARs="true" autoDepl ......
我用的Linux系统是Fedora7,是一个声卡采集然后发送数据到服务器的下位机程序,我在/etc/rc.d/rc.local里面加了开机启动的路径,程序直接在账户登录之前就启动了,而且里面的线程跑的也有问题,不知道怎么回事?是我 ......