当前位置:  技术问答>linux和unix

柔性数组问题再次请教:

    来源: 互联网  发布时间:2016-07-30

    本文导语:  柔性数组问题再次请教: 一个带柔性数组的结构体: struct abc{    .....    .....    struct def{     ...     unsigned char variable[0];    }; }; 如果程序中有访问variable元素的话.如:  struct abc* temp; unsigned int len; len = ...

柔性数组问题再次请教:
一个带柔性数组的结构体:
struct abc{
   .....
   .....
   struct def{
    ...
    unsigned char variable[0];
   };
};

如果程序中有访问variable元素的话.如: 
struct abc* temp;
unsigned int len;
len = (unsigned char*)temp->def.variable - (unsigned char*)temp;
这个在linux的gcc下可以编译OK. 但是标准的ansc不支持这种写法. 如果是ANSI标准的编译器来编译的话. 应该如何修改以上代码?

|
gcc 的特性,0长数组
如果想换ansic ,去掉  unsigned char variable[0]; 
换用sizeof

|
要取得结构体偏移见
http://topic.csdn.net/u/20100112/16/0a3cd777-c7d9-4602-8eaa-dfe20b10dbb7.html

零长数组作用
http://topic.csdn.net/u/20100116/17/57c98309-0d9e-4b9c-83a9-da1619291359.html

    
 
 

您可能感兴趣的文章:

  • C语言柔性数组实例详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3