结构体嵌套出错

fiona007   2009-11-20 17:28 楼主
在ADS下编译出错. 如下.
struct ieee80211_tx_rate{
        s8 idx;
        u8 count;
        u8 flags;
};
struct ieee80211_tx_info {
        /* common information */
        u32 flags;
        u8 band;

        u8 antenna_sel_tx;

        /* 2 byte hole */
        u8 pad[2];

        union {
            struct {
                union {
                        /* rate control */
                        struct {
                                struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES];
                                s8 rts_cts_rate_idx;
                                };    /////出错地方
                               /* only needed before rate control */
                               unsigned long jiffies;
                        };////出错地方
                        /* NB: vif can be NULL for injected frames */
                        struct ieee80211_vif *vif;
                        struct ieee80211_key_conf *hw_key;
                        struct ieee80211_sta *sta;
                } control;
                struct {
                        struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES];
                        u8 ampdu_ack_len;
                        u64 ampdu_ack_map;
                        int ack_signal;
                        /* 8 bytes free */
                } status;
                struct {
                      struct ieee80211_tx_rate driver_rates[IEEE80211_TX_MAX_RATES];
                      void *rate_driver_data[IEEE80211_TX_INFO_RATE_DRIVER_DATA_SIZE / sizeof(void *)];
                };////出错地方
                void *driver_data[IEEE80211_TX_INFO_DRIVER_DATA_SIZE / sizeof(void *)];
        };////出错地方
};

编译后四个地方报错:
Error: C2487E: declaration with no effect
Error: C2487E: declaration with no effect
Error: C2487E: declaration with no effect
Error: C2487E: declaration with no effect
这是怎么回事? 是否是结构体嵌套造成的?

回复评论 (6)

struct {
      struct ieee80211_tx_rate driver_rates[IEEE80211_TX_MAX_RATES];
      void *rate_driver_data[IEEE80211_TX_INFO_RATE_DRIVER_DATA_SIZE / sizeof(void *)];
};////出错地方


好像出错的地方,结构都没有名字啊?
点赞  2009-11-20 17:44
里面的struct没有定义结构名吧
点赞  2009-11-20 17:46
struct {
      struct ieee80211_tx_rate driver_rates[IEEE80211_TX_MAX_RATES];
      void *rate_driver_data[IEEE80211_TX_INFO_RATE_DRIVER_DATA_SIZE / sizeof(void *)];
};////出错地方

结构里要求有实体
点赞  2009-11-20 17:46
我靠,多查了下struct的用法,被人抢先了!!!
点赞  2009-11-20 17:47
引用: 引用 4 楼 lyx_wq 的回复:
我靠,多查了下struct的用法,被人抢先了!!!

学艺不精,业务不熟,临时抱佛脚。哈哈。
点赞  2009-11-20 20:26
确实没看到结构体名字. 这是从linux源码移植过来的. 编译不通过. 奇怪为什么gcc可以编译通过?
点赞  2009-11-21 09:10
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复