硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1634|回复: 6
收起左侧

一个关于联合体作为参数的问题?

[复制链接]

36

主题

142

回帖

250

积分

高级会员

积分
250
发表于 2021-1-22 15:25:31 | 显示全部楼层 |阅读模式
struct TESTRESULTBITS
{
          uint  Sensity      :1;
         uint  Response     :1;
         uint  Loop         :1;
         uint  Rsvd         :13;
}
union TestResult_ALL
{
        uint  all;
        struct  TESTRESULTBITS        bit;
};

struct SDCARD
{
        uint  Start;
        uint  ReadFlag;
        union TestResult_ALL WritResult;
}
struct SDCARD Sdcard;
void Fnc(uint *wrtFlag);//创建函数
Fnc(&Sdcard.WritResult.bit.Connect)//调用这个函数时就会报错,提示不能提取Sdcard.WritResult.bit.Connect的地址,想问一下这个问题怎么解决
回复

使用道具 举报

8

主题

104

回帖

138

积分

初级会员

积分
138
发表于 2021-1-22 15:42:04 | 显示全部楼层
Connect 位定义在哪、也没用到联合体。
回复

使用道具 举报

36

主题

142

回帖

250

积分

高级会员

积分
250
 楼主| 发表于 2021-1-22 16:08:05 | 显示全部楼层
李益达 发表于 2021-1-22 15:42
Connect 位定义在哪、也没用到联合体。

因为公司有保密系统 不能复制,我只简化了一下代码,你可以认为是Loop
回复

使用道具 举报

8

主题

104

回帖

138

积分

初级会员

积分
138
发表于 2021-1-22 16:16:17 | 显示全部楼层
老虎的菜 发表于 2021-1-22 16:08
因为公司有保密系统 不能复制,我只简化了一下代码,你可以认为是Loop

那你就要考虑一下内存对齐了
回复

使用道具 举报

2

主题

14

回帖

20

积分

新手上路

积分
20
发表于 2021-1-22 16:18:18 | 显示全部楼层
结构体位域没法取地址
回复

使用道具 举报

0

主题

124

回帖

124

积分

初级会员

积分
124
发表于 2021-3-9 16:32:25 | 显示全部楼层
Fnc((uint*)&Sdcard.WritResult.bit.Connect)
回复

使用道具 举报

6

主题

231

回帖

249

积分

高级会员

积分
249
发表于 2021-3-15 21:59:49 | 显示全部楼层
Bit fields can only be declared as part of a structure. The address-of operator (&) cannot be applied to bit-field components.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 13:18 , Processed in 0.173948 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表