struct - 宏的包含文件中使用的结构中的未知初始化程序
问题描述
我在用于 AVR MCU 的包含文件中发现了一个未知的初始化程序(在我看来)。附加一小组我不明白的宏。有人可以向我解释结构中的初始化程序是什么以及宏是如何工作的吗?
// Access bits like variables
struct bits {
uint8_t b0:1, b1:1, b2:1, b3:1, b4:1, b5:1, b6:1, b7:1;
} __attribute__((__packed__));
#define SBIT_(port,pin) ((*(volatile struct bits*)&port).b##pin)
#define SBIT(x,y) SBIT_(x,y)
// MCU related Port definition
#define PORT_B0 SBIT( PORTB, 0 )
#define MYPIN SBIT(PORT_B0)
// Usage in program
MYPIN = 1; // will set Pin PB0 to 1 ( high )
我可以简单地使用这个不错的代码,但我想了解这里发生了什么。非常感谢任何提示。非常感谢
解决方案
推荐阅读
- php - 从数据库中获取数据表中的印地语文本
- vba - 如何在受密码保护的后端创建指向我的表的链接?
- excel - 将文本框条目与单元格匹配以使用用户表单数据填充列
- powershell - VSTS - 在 Powershell 上自定义构建并上传到 Artifact 到目录
- c# - 是 IEnumerable
接口还是集合? - python - 从 python 中的 PYQT5 QListview 获取选定文件的文件名
- scala - Spark 和 AWS Kinesis
- maximo-anywhere - 无法在 maximo Anywhere 屏幕中找到条目
- maven - 从 Jenkins 向 Nexus 发布 Maven 多模块工件
- reactjs - 反应本机日历