C语言结构体赋值的方法之宏定义
2021/12/19 23:19:45
本文主要是介绍C语言结构体赋值的方法之宏定义,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今天发现结构体赋值可以用宏定义的办法来赋值
typedef struct { I2C_TypeDef *port; /**< Peripheral port */ GPIO_Port_TypeDef sclPort; /**< SCL pin port number */ uint8_t sclPin; /**< SCL pin number */ GPIO_Port_TypeDef sdaPort; /**< SDA pin port number */ uint8_t sdaPin; /**< SDA pin number */ #if defined(_SILICON_LABS_32B_SERIES_0) uint8_t portLocation; /**< Port location */ #elif defined(_SILICON_LABS_32B_SERIES_1) uint8_t portLocationScl; /**< Port location of SCL signal */ uint8_t portLocationSda; /**< Port location of SDA signal */ #endif uint32_t i2cRefFreq; /**< I2C reference clock */ uint32_t i2cMaxFreq; /**< I2C max bus frequency to use */ I2C_ClockHLR_TypeDef i2cClhr; /**< Clock low/high ratio control */ } I2CSPM_Init_TypeDef;
1 #define I2CSPM_INIT_DEFAULT \ 2 { I2C0, /* Use I2C instance 0 */ \ 3 gpioPortC, /* SCL port */ \ 4 5, /* SCL pin */ \ 5 gpioPortC, /* SDA port */ \ 6 4, /* SDA pin */ \ 7 0, /* Location */ \ 8 0, /* Use currently configured reference clock */ \ 9 I2C_FREQ_STANDARD_MAX, /* Set to standard rate */ \ 10 i2cClockHLRStandard, /* Set to use 4:4 low/high duty cycle */ \ 11 }
这样定义后,结构体就可以这样赋值
I2CSPM_Init_TypeDef I2C_Init = I2CSPM_INIT_DEFAULT;
这篇关于C语言结构体赋值的方法之宏定义的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升