ADS下编译不支持柔性数组结构成员,该如何解决

[复制链接]
2282|8
 楼主| 技术新人 发表于 2013-6-26 17:18 | 显示全部楼层 |阅读模式
本帖最后由 技术新人 于 2013-6-26 18:18 编辑

比如数据结构:
struct abc
{
    u8 data;
    u8 p[0];
};

p[0]是柔性数组结构成员。不占用实际空间的。这样的数据结构在ADS下编译通不过。该如何来配置呢?

找高人救命呀
wowow 发表于 2013-6-26 17:23 | 显示全部楼层
struct abc
{
    u8 data;
    u8 p[1];
};
 楼主| 技术新人 发表于 2013-6-26 18:00 | 显示全部楼层
这两个结构不一样呀
huangxz 发表于 2013-6-26 18:34 | 显示全部楼层
技术新人 发表于 2013-6-26 18:00
这两个结构不一样呀

不一样,一个是数组长度为0,一个为1
pangencao 发表于 2013-6-28 08:36 | 显示全部楼层
ayb_ice 发表于 2013-6-28 10:49 | 显示全部楼层
有能编译通过的吗,表示怀疑
john_lee 发表于 2013-6-28 11:30 | 显示全部楼层
本帖最后由 john_lee 于 2013-6-28 11:31 编辑

不仅仅是 ADS 通不过,标准 C 都不支持 struct 中的长度为 0 的数组,这个特性是 gcc 的扩展语法。
C99 标准有一个新特性:struct hack,可以在 struct 的最后定义一个“不完整数组”成员:
  1. struct foo {
  2.     ....
  3.     char bar[];
  4. };
这个符合楼主的要求,但好像 ADS 不是 C99 标准的吧。
lujun1013 发表于 2013-6-28 14:33 | 显示全部楼层
欢迎使用正版的DS-5工具  呵呵:)
 楼主| 技术新人 发表于 2013-7-9 14:30 | 显示全部楼层
7楼正解呀。全部修改实现了,麻烦呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:、低成本串口wifi模块; wifi插座、wifi遥控器、wifi安防、wifi视频等智能家居解决方案

18

主题

53

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部