gpt4 book ai didi

c++ - '[' token 和 + 之前的预期不合格 ID

转载 作者:行者123 更新时间:2023-11-30 02:26:31 24 4
gpt4 key购买 nike

我在解决一个未知问题时遇到问题,这是我在 Arduino Nano(ATmega328) 上从未遇到过的问题。我正在构建一个无人机源代码并且它一直运行良好。但是,Arduino IDE 突然出现错误。
显然,我是编程方面的菜鸟。所以帮我找出解决这个问题的方法。

我遇到这样的错误:

error: expected unqualified-id before '[' token 

error: 'value' does not name a type

Quadcopter_Code_Arduino:580: error: expected unqualified-id
before '[' token

struct op[]

^

Quadcopter_Code_Arduino:589: error: 'value' does not name a type

} value;

^
typedef union accel_t_gyro_union
{
struct
{
uint8_t x_accel_h;
uint8_t x_accel_l;
uint8_t y_accel_h;
uint8_t y_accel_l;
uint8_t z_accel_h;
uint8_t z_accel_l;
uint8_t t_h;
uint8_t t_l;
uint8_t x_gyro_h;
uint8_t x_gyro_l;
uint8_t y_gyro_h;
uint8_t y_gyro_l;
uint8_t z_gyro_h;
uint8_t z_gyro_l;
} reg;
struct op[]
{
int x_accel;
int y_accel;
int z_accel;
int temperature;
int x_gyro;
int y_gyro;
int z_gyro;
} value;

};

最佳答案

定义/信息:

来自 http://en.cppreference.com/w/cpp/language/union

A union is a special class type that can hold only one of its non-static data members at a time.

The union is only as big as necessary to hold its largest data member. The other data members are allocated in the same bytes as part of that largest member.

还有:

您的声明不正确,应该是:

struct op
{
int x_accel;
int y_accel;
int z_accel;
int temperature;
int x_gyro;
int y_gyro;
int z_gyro;
} value [SIZE];

我建议你为你的数组使用一个特定的大小,或者你的结构类型的指针声明来明确,你稍后会决定它的堆大小,但堆栈上的 union 将有一个指针大小成员(member)...

(尽管在我的快速测试中它仍然可以编译和工作......我也应该阅读这种行为。:D)

解决方案:

使用上面更正的声明。

建议:对括号中的数组使用 SIZE。如果您还不知道大小,请出于上述原因使用指针。

关于c++ - '[' token 和 + 之前的预期不合格 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42759434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com