私はArduinoで構造体を使用しようとしていますが、私は初心者であり、構造体内で配列を宣言して使用する方法がわかりません(int pin[5]
and int vecinos[6]
)。
typedef struct
{
int id;
int pin[5];
int tiempoCero;
int tiempoApagado;
int estado;
int vecinos[6];
} zonas;
zonas zona[5];
あなたの宣言は問題ありません。ただし、Arduino IDE が自動的に関数プロトタイプを生成することを理解する必要があります。残念ながら、IDE はうまく機能しません。宣言の前に、生成されたプロトタイプを先頭に並べ替えます。したがって、それらを関数定義で使用することはできません。IDE がプロトタイプを自動生成しないようにしない限り。
これを達成するための 3 つの方法を見つけました。
小さなファイルの場合、私が好む解決策は #1 です。あなたのスケッチは次のようになります
namespace whatever {
typedef struct
{
int id;
int pin[5];
int tiempoCero;
int tiempoApagado;
int estado;
int vecinos[6];
} zonas;
function example(zonas z) {
...
}
}
void setup() {
...
}
void loop() {
whatever::zonas z;
...
whatever::example(z);
}
詳細な例については、こちらをご覧ください。