码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C结构体内定义结构体,不能直接赋值。


    现像:

    如下代码:

    头文件:

    1. typedef struct aBlinkGpioPinOutAbst_{
    2. void (*initAsOutput)(void);
    3. void (*high)(void);
    4. void (*low)(void);
    5. }aBlinkGpioPinOutAbst;
    6. typedef struct aBlinkGpioAbst_{
    7. #if GPIO_CONFIG_PA0 == GPIO_CONFIG_AS_OUTPUT
    8. aBlinkGpioPinOutAbst pa0;
    9. #elif GPIO_CONFIG_PA0 == GPIO_CONFIG_AS_INPUT
    10. aBlinkGpioPinInAbst pa0;
    11. #elif GPIO_CONFIG_PA0 == GPIO_CONFIG_AS_DOUBLE
    12. aBlinkGpioPinDoubleAbst pa0;
    13. #endif
    14. aBlinkGpioPinOutAbst* test;
    15. }aBlinkGpioAbst;

    C文件:

    1. aBlinkGpioPinOutAbst pt;
    2. aBlinkGpioAbst gpio = {
    3. .pa0 = pt,
    4. };

    结果报错如下:

    分析:

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

    使用如下初始化:

    1. aBlinkGpioPinOutAbst pt;
    2. aBlinkGpioAbst gpio = {
    3. .test = &pt,
    4. };

    可以编译了:

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

    解决:

    使用

    void x_aBlinkGpioInit(){
      aBlinkGpio.pa0        = pa0;

    }

  • 相关阅读:
    浅谈电气防火保护器在地下商场的应用
    Python+Django+Html网页前后端指纹信息识别
    react路由01——react-routerV6 中路由传递参数的几种方式
    微信公众号根据URL取文章详情 API 返回值说明
    【算法集训专题攻克篇】第十二篇之链表
    mysql主从复制与读写分离
    学习ASP.NET Core Blazor编程系列十——路由(下)
    AG35学习笔记(一):debug串口抓取模组log、debug串口测试AT指令、echo命令通过串口发送16进制数据
    Golang标准库
    迪士尼FAMA认证作用及取得FAMA注意事项
  • 原文地址:https://blog.csdn.net/c_1969/article/details/133822772
  • 最新文章
  • BMAD Story Automator 上手实录:把 5 个待办 Story 交给 AI 自主推进
    自己用 ai 写了个链接 mysql 数据库的 mcp 工具
    用ANTLR实现表达式词法和语法分析器
    Claude Code安装,接入阿里云百炼模型,蹭蹭免费额度
    JVM缓存对象对GC的影响与优化方案
    基于多模态视觉模型和图文向量模型的工业图像知识库研究与应用
    .NET 8 Web开发入门(四):注入燃料——Entity Framework Core 与 Code First 实战
    当 AI 开始写代码,谁来保证它不会翻车?
    深入剖析Java内存模型与volatile关键字
    使用Cursor实现管理系统的主界面布局的Vue3前端开发
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号