无法访问 Arduino 结构字段。错误"退出状态 1。xxxx 不命名类型"
Cannot access Arduino struct fields. ERROR "exit status 1. xxxx does not name a type"
使用structs时,我无法编译Arduino IDE。我定义了一个名为params
的简单结构来保存我的参数。
当我尝试使用"."访问结构体params
的字段时,它会抛出以下错误
exit status 1
'params' does not name a type
我已经搜索并尝试了许多不同的东西。我试着把定义放在一个单独的.h文件中,并试着把我的草图放在.cpp文件中,而不是用.ino,但我无法使这个结构工作!
我确信语法是正确的,它将在C++中工作。当Arduino IDE给我这个错误时,我不明白!
这是我的.ino文件顶部的代码。如果你能帮助我,我将不胜感激,谢谢!
#include <MIDI.h>
#include <Wire.h>
#include <EEPROM.h>
// address for Terabee laser sensor connnected via USB
#define ADDRESS 0x55
const int num_sensors = 3;
typedef struct { // holds all free parameters (for presets)
int test;
int reverse[num_sensors];
int active[num_sensors];
int sensor_range[num_sensors];
int cc_num[num_sensors];
int channel[num_sensors];
int default_value[num_sensors]; // for rubber-band mode
int min_value[num_sensors];
int max_value[num_sensors];
} parameters;
// Created and binds the MIDI interface to the default hardware Serial port
MIDI_CREATE_DEFAULT_INSTANCE();
parameters params;
params.test= 2; // COMPILER THROWS ERROR ON THIS LINE!!!!!!!!!
//params.cc_num = {22, 23, 24};
//params.reverse = {false, false, false};
//params.sensor_range = {150, 150, 150}; //upper limit (how far shall the hand go?)
//params.default_value = {64, 64, 64}; // rubber-band defaults for the 3 sensors
//params.min_value = {0, 0, 0};
//params.max_value = {127, 127, 127};
void setup() { [....]
我使用全局变量,我不知道这是否是个好主意,但我是Arduino的新手,目前它运行良好,只添加结构会产生所有问题。
此外,只需使用parameters params;
定义结构即可编译。尝试访问字段时出现错误,如params.test = 2;
移动函数中的代码并调用它:
void test() {
params.test= 2;
params.cc_num = {22, 23, 24};
params.reverse = {false, false, false};
params.sensor_range = {150, 150, 150};
params.default_value = {64, 64, 64};
params.min_value = {0, 0, 0};
params.max_value = {127, 127, 127};
}
在c和c++pre-c++11中,不能将非静态成员初始化为全局变量。
我不熟悉Arduino,但熟悉以下代码:
params.test= 2;
以及为结构成员赋值的所有其他(当前已注释掉(行,应该在函数内。也许是您在下面定义的Setup((函数?
我认为以前您可以编译以下语句:
int test = 2;
因为在这种情况下,"="运算符是初始化变量的值,而不是将值分配给结构成员
相关文章:
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 大量序列中核苷酸类型的快速计数
- 如何从C++中的依赖类型中获得它所依赖的类型
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何获取std::result_of函数的返回类型
- 从父命名空间重载类型
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 访问者访问变体并返回不同类型时出错
- 在VS2010-VS2015下编译时,如何使用decltype作为较大类型表达式的LHS
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 模板元程序查找相似的连续类型名称
- 是否可以从int转换为enum类类型
- 无法访问 Arduino 结构字段。错误"退出状态 1。xxxx 不命名类型"
- 错误"xxxx"未命名类型
- xxxx没有命名c++类型