C_and_CPP 板


LINE

开发平台(Platform): 我是在32Bit Renesas MCU上实作 我想要用结构指标来操作资料例如: // MSB bit7 - bit0 LSB // 要用来操作的结构 typedef struct { uint8_t JoystickUpStatus:1; uint8_t JoyStickLeftStatus:1; uint8_t JoyStickRightStatus:1; uint8_t JoyStickDownStatus:1; uint8_t Pending1:4; uint16_t TimeCounter1:12; uint8_t Pending2:4 uint16_t SpeedValue:16; uint8_t XStatus:2; uint8_t YStatus:2; uint8_t Pending3:2; uint16_t TimeCounter2:10; uint8_t Pending4:8; }MY_DAT_STRUCT; //8 bytes, 64bit total uint64_t TX_DATA = 0xF0CCF03FFE000008; //通常资料一次送8 bytes出去 MY_DAT_STRUCT *my_dat_struct = (MY_DAT_STRUCT *)&TX_DATA; //以下为预期结果 my_dat_struct->JoystickDownStatus 数值为 1; my_dat_struct->SpeedValue 数值为 0x3FFE; my_dat_struct->TimeCounter2 数值为 0xCCC; 实际跑出来结果跟预期相符。 这样做的目的是希望增加程式的可读性,能明确的知道哪些bit是做甚麽用的; 在读取的时候也能快速的取出要的数值。 我想问的问题是(我的lib中没有sizeof()可以用): 1. 若我宣告 MY_DAT_STRUCT my_dat; my_dat的size会是连续的64bits吗? 2. 承上,若宣告为 *my_dat; 那麽size应该会是多少? 2. TX_DATA透过转型成结构指标操作的话,会不会有潜在的问题(例如没对齐)? 3. 这样的作法(转型操作)是正确/常见的使用方式吗? 刚入行对转型跟结构还不太熟悉,希望各位前辈指导,非常感谢! --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.161.95.179
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1544707291.A.A88.html
1F:→ james732: sizeof()是compiler支援的而不是lib支援的吧? 12/13 21:31
2F:→ loveme00835: C89 就有 sizeof “operator” 除非你穿越吧 12/14 01:40
3F:→ amoumou: 谢谢指教!我马上去确认sizeof()是否能用 12/14 08:07
4F:→ amoumou: 测试过了,编译出现syntax error,无论是穿越或其他原因 12/14 08:15
5F:→ amoumou: ,现在我确实无法用sizeof()取得size 12/14 08:15
6F:→ amoumou: 第二题我想我有解答了,32位元不论哪种指标都是4bytes 12/14 08:49







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP