| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 974 人关注过本帖
标题:C结构体 问题
只看楼主 加入收藏
chenalng
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-4-27
结帖率:0
收藏
 问题点数:0 回复次数:2 
C结构体 问题

typedef struct sChannelParams
{
    /*!
     * Frequency in Hz
     */
    uint32_t Frequency;
    /*!
     * Data rate definition
     */
    DrRange_t DrRange;
    /*!
     * Band index
     */
    uint8_t Band;
}ChannelParams_t;

typedef union uDrRange
{
    /*!
     * Byte-access to the bits
     */
    int8_t Value;
    /*!
     * Structure to store the minimum and the maximum datarate
     */
    struct sFields
    {
         /*!
         * Minimum data rate
         *
         * EU868 - [DR_0, DR_1, DR_2, DR_3, DR_4, DR_5, DR_6, DR_7]
         *
         * US915 - [DR_0, DR_1, DR_2, DR_3, DR_4]
         */
        int8_t Min : 4;
        /*!
         * Maximum data rate
         *
         * EU868 - [DR_0, DR_1, DR_2, DR_3, DR_4, DR_5, DR_6, DR_7]
         *
         * US915 - [DR_0, DR_1, DR_2, DR_3, DR_4]
         */
        int8_t Max : 4;
    }Fields;
}DrRange_t;
#define LC4                { 867100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
这里定义了一个结构体类型
但是我强制类型转化就报错了
( ChannelParams_t )LC4
这样我就报错了
说类型转化 不被允许。
搜索更多相关主题的帖子: 结构体 Data the 类型 转化 
2017-04-27 10:24
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10551
专家分:42996
注 册:2014-5-20
收藏
得分:0 
LC4是宏吗?
( ChannelParams_t )LC4
宏替换为:
( ChannelParams_t ){ 867100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }

如果 #define LC4 { 867100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } 能通过
试试:
ChannelParams_t a = LC4;
2017-04-27 11:31
leodjh
Rank: 1
等 级:新手上路
帖 子:15
专家分:7
注 册:2016-8-13
收藏
得分:0 
2017-04-27 11:58
快速回复:C结构体 问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015478 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved