打印

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

[复制链接]
1513|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

使用特权

评论回复
5
pangencao| | 2013-6-28 08:36 | 只看该作者
u8 *p

使用特权

评论回复
6
ayb_ice| | 2013-6-28 10:49 | 只看该作者
有能编译通过的吗,表示怀疑

使用特权

评论回复
7
john_lee| | 2013-6-28 11:30 | 只看该作者
本帖最后由 john_lee 于 2013-6-28 11:31 编辑

不仅仅是 ADS 通不过,标准 C 都不支持 struct 中的长度为 0 的数组,这个特性是 gcc 的扩展语法。
C99 标准有一个新特性:struct hack,可以在 struct 的最后定义一个“不完整数组”成员:
struct foo {
    ....
    char bar[];
};
这个符合楼主的要求,但好像 ADS 不是 C99 标准的吧。

使用特权

评论回复
8
lujun1013| | 2013-6-28 14:33 | 只看该作者
欢迎使用正版的DS-5工具  呵呵:)

使用特权

评论回复
9
技术新人|  楼主 | 2013-7-9 14:30 | 只看该作者
7楼正解呀。全部修改实现了,麻烦呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

18

主题

53

帖子

0

粉丝