当前位置: 首页 > news >正文

C结构体内定义结构体,不能直接赋值。

现像:

如下代码:

头文件:

typedef struct aBlinkGpioPinOutAbst_{void (*initAsOutput)(void);void (*high)(void);void (*low)(void);
}aBlinkGpioPinOutAbst;typedef struct aBlinkGpioAbst_{
#if GPIO_CONFIG_PA0 == GPIO_CONFIG_AS_OUTPUT aBlinkGpioPinOutAbst pa0;
#elif GPIO_CONFIG_PA0 == GPIO_CONFIG_AS_INPUT aBlinkGpioPinInAbst pa0;
#elif GPIO_CONFIG_PA0 == GPIO_CONFIG_AS_DOUBLE aBlinkGpioPinDoubleAbst pa0;
#endifaBlinkGpioPinOutAbst* test;
}aBlinkGpioAbst;

C文件:

aBlinkGpioPinOutAbst pt;aBlinkGpioAbst gpio = {.pa0 = pt,
};

结果报错如下:

分析:

结构体应该代表的是一片内存,应该像基本类型一样可以直接赋值呀,为什么会出错?

使用如下初始化:

aBlinkGpioPinOutAbst pt;aBlinkGpioAbst gpio = {.test = &pt,
};

可以编译了:

但是代价要使用->而不是.来调用。

解决:

使用

void x_aBlinkGpioInit(){
  aBlinkGpio.pa0        = pa0;

}

http://www.lryc.cn/news/192175.html

相关文章:

  • PHP遇见错误了看不懂?这些错误提示你必须搞懂
  • 微信小程序备案流程操作详解
  • 【100天精通Python】Day70:Python可视化_绘制不同类型的雷达图,示例+代码
  • KY258 日期累加
  • 基于CodeFormer实现图片模糊变清晰,去除马赛克等效果
  • Docker【部署 05】docker使用tensorflow-gpu安装及调用GPU踩坑记录
  • 前后端分离中,前端请求和后端接收请求格式总结
  • pytorch的基本运算,是不是共享了内存,有没有维度变化
  • Visual Studio 2022新建项目时没有ASP.NET项目
  • nuiapp项目实战:导航栏动态切换效果实践案例树
  • 【机器学习】集成学习(以随机森林为例)
  • 主机jvisualvm连接到tomcat服务器查看jvm状态
  • uniapp 自定义tabbar页面不刷新
  • 3.1 SQL概述
  • xray安装与bp组合使用-被动扫描
  • Java 中Maven 和 ANT
  • Flutter通过Pigeon插件与Android同步异步交互
  • GTW验厂是什么?GTW验厂评级分类
  • CVE-2017-12615 Tomcat远程命令执行漏洞
  • 灿芯股份将上会:计划募资6亿元,董事长、总经理均为外籍
  • Spring Cloud Gateway 搭建网关
  • ETL数据转换方式有哪些
  • CVE-2017-15715 apache换行解析文件上传漏洞
  • 振弦采集仪应用水坝安全监测的方案
  • 【Java】查找jdk步骤
  • 【mysql】Mysql自定义变量 @rownum使用
  • 命令行启动android模拟器
  • Three.js如何计算3DObject的2D包围框?
  • 【LeetCode热题100】--347.前K个高频元素
  • 解决服务器80端口无法连接的办法