关于结构体初始化
2013-12-02 15:47
375 查看
我们一般见的结构体初始化有两种:
比如这个结构体,我们一般这样初始化:
但是在linux内核里面有这样一种初始化方法:
如果需要这样用的话,或者你拿到的工程代码里面有这样定义的,我们可以这样设置就可以了!
蓝桥杯-嵌入式交流群
147520657
typedef struct { uint32_t I2C_ClockSpeed; /*!< Specifies the clock frequency. This parameter must be set to a value lower than 400kHz */ uint16_t I2C_Mode; /*!< Specifies the I2C mode. This parameter can be a value of @ref I2C_mode */ uint16_t I2C_DutyCycle; /*!< Specifies the I2C fast mode duty cycle. This parameter can be a value of @ref I2C_duty_cycle_in_fast_mode */ uint16_t I2C_OwnAddress1; /*!< Specifies the first device own address. This parameter can be a 7-bit or 10-bit address. */ uint16_t I2C_Ack; /*!< Enables or disables the acknowledgement. This parameter can be a value of @ref I2C_acknowledgement */ uint16_t I2C_AcknowledgedAddress; /*!< Specifies if 7-bit or 10-bit address is acknowledged. This parameter can be a value of @ref I2C_acknowledged_address */ }I2C_InitTypeDef;
比如这个结构体,我们一般这样初始化:
I2C_InitTypeDef i2c; i2c.I2C_Ack = I2C_Ack_Enable; i2c.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; i2c.I2C_ClockSpeed = clock*1000; i2c.I2C_DutyCycle = I2C_DutyCycle_2; i2c.I2C_Mode = I2C_Mode_I2C; i2c.I2C_OwnAddress1 = addr;
I2C_InitTypeDef i2c = { I2C_Ack_Enable, I2C_AcknowledgedAddress_7bit, clock*1000, I2C_DutyCycle_2, I2C_Mode_I2C, addr};希望大家不要纠结我这个结构体变量的顺序,肯定错了,我只是说下有这种方法!
但是在linux内核里面有这样一种初始化方法:
I2C_InitTypeDef i2c = { .I2C_Ack = I2C_Ack_Enable , .I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit, .I2C_ClockSpeed = 40000, .I2C_DutyCycle = I2C_DutyCycle_2, .I2C_Mode = I2C_Mode_I2C , .I2C_OwnAddress1 = 0x0a };但是在keil里面默认是不可以用这种方法初始化的,他属于C99的标准,但是keil默认是C90的标准!
如果需要这样用的话,或者你拿到的工程代码里面有这样定义的,我们可以这样设置就可以了!
蓝桥杯-嵌入式交流群
147520657
相关文章推荐
- 关于数组结构体的初始化
- 关于linux内核中结构体初始化的新写法
- 关于C++中结构体初始化小结
- 结构体初始化的方法——关于struct file_operations
- 关于结构体定义时初始化及结合数组使用问题 示例
- 关于结构体初始化的相关总结
- c++关于结构体动态链表初始化添加删除操作代码
- 关于结构体成员变量初始化的一些资料
- 关于结构体初始化需要注意的一个细节
- 关于结构体数组初始化的问题--深入举例
- 关于结构体和类初始化
- 关于结构体初始化需要注意的一个细节
- 关于linux中内核编程中结构体的赋值操作(结构体指定初始化)
- 关于数组、结构体的初始化
- 关于结构体的定义与初始化
- 关于linux中内核编程中结构体的赋值操作 (结构体指定初始化)
- 关于结构体数组初始化的问题--深入举例
- 一个关于Java JFrame 无法初始化组件问题
- Linux C中结构体初始化
- 测试一下C语言结构体初始化