博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言中元素访问之数组
阅读量:5245 次
发布时间:2019-06-14

本文共 1647 字,大约阅读时间需要 5 分钟。

  今天在写STM32程序时,出现了一个小问题,现在记录下来,应该说是自己的C语言基本功不行。加油吧

首先,发送函数的定义:

1 void rs485_put_bytes(uint8 *buf,uint32 len)

所访问的结构体的定义:

typedef struct{  uint32_t StdId;  /*!< Specifies the standard identifier.                        This parameter can be a value between 0 to 0x7FF. */  uint32_t ExtId;  /*!< Specifies the extended identifier.                        This parameter can be a value between 0 to 0x1FFFFFFF. */  uint8_t IDE;     /*!< Specifies the type of identifier for the message that will be received.                        This parameter can be a value of @ref CAN_identifier_type */  uint8_t RTR;     /*!< Specifies the type of frame for the received message.                        This parameter can be a value of @ref CAN_remote_transmission_request */  uint8_t DLC;     /*!< Specifies the length of the frame that will be received.                        This parameter can be a value between 0 to 8 */  uint8_t Data[8]; /*!< Contains the data to be received. It ranges from 0 to 0xFF. */  uint8_t FMI;     /*!< Specifies the index of the filter the message stored in the mailbox passes through.                        This parameter can be a value between 0 to 0xFF */} CanRxMsg;

定义一个结构体变量:

1 CanRxMsg RxMessage;
View Code

现在rs485_put_bytes()函数要访问这个RxMessage结构体中的Data成员,第一个参数是指针,我认为下面的方法可行的,结果报错

1 rs485_put_bytes(RxMessage->Data, 8);

结果报错,

RxMessage->Data 不是指针类型

我记得是数组名是可以当做指针用的,怎么不行呢?

最后换成了

1 rs485_put_bytes(RxMessage.Data, 8);

这回就不报错了,(后来问一同事,同事说:RxMessage结构体名不能直接当做指针使用,可以使用下面的方法)

1 rs485_put_bytes((&RxMessage)->Data, 8);

将结构体名转换成指针,这样也通过编译。

可能在大部分人这都是小问题,我水平还不行,需要努力,加油,谢谢,感谢,

 

转载于:https://www.cnblogs.com/craigtao/p/3269547.html

你可能感兴趣的文章
mysql新建用户,用户授权,删除用户,修改密码
查看>>
实验五 TCP传输及加密
查看>>
【iOS】build diff: /../Podfile.lock: No such file or directory
查看>>
【Android Studio】使用 Genymotion 调试出现错误 INSTALL_FAILED_CPU_ABI_INCOMPATI
查看>>
FancyCoverFlow
查看>>
教你一分钟实现动态模糊效果
查看>>
C++中explicit的用法
查看>>
java 企业站源码 兼容手机平板PC 响应式 主流SSM框架 freemaker 静态引擎
查看>>
AliOS编译安装MyRocks
查看>>
JS博客
查看>>
Docx转Doc操作(c#)
查看>>
Docker——error pulling image configuration
查看>>
一条简单的 SQL 执行超过 1000ms,纳尼?
查看>>
Python函数(一)之杵臼之交
查看>>
关于将qt作为max插件ui库所遇到的困难
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
SendMail与Postfix的架构备忘
查看>>
paip.mysql 性能测试 报告 home right
查看>>
Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216 java c# php js.docx...
查看>>