C语言报错expected expression struct camera_i2c_reg_array API_cmd_msg[19] = I2C_BULKMODE_DEEXPOSURE_API_CMD;
时间: 2024-09-15 09:08:20 浏览: 36
这个C语言错误提示 "expected expression struct camera_i2c_reg_array API_cmd_msg[19]" 表示在给 `API_cmd_msg` 数组赋值时,预期的是一个表达式(expression),但遇到了 "I2C_BULKMODE_DEEXPOSURE_API_CMD",这看起来像是一个常量或宏名而非可以作为数组元素赋值的完整表达式。
`camera_i2c_reg_array` 很可能是某个结构体类型,而 `API_cmd_msg[19]` 应该是一个包含该结构体类型的数组,并且这个位置应当是一个对该结构体的实例化和赋值,而不是直接放一个宏名称。
正确做法应该是先创建一个 `API_cmd_msg` 的数组实例,然后将 `I2C_BULKMODE_DEEXPOSURE_API_CMD` 赋值给其中的一个元素,类似这样:
```c
typedef struct {
uint8_t command_code;
uint8_t data_length;
} camera_i2c_reg_array;
#define I2C_BULKMODE_DEEXPOSURE_API_CMD 0x01
camera_i2c_reg_array API_cmd_msg[19];
API_cmd_msg[0].command_code = I2C_BULKMODE_DEEXPOSURE_API_CMD;
```
这里假设 `command_code` 是第一个字段,它的值被设置为 `I2C_BULKMODE_DEEXPOSURE_API_CMD`。
阅读全文