私は構造体を宣言し、次にこれらの構造体の配列を、次にこれらの構造体の配列の配列を宣言したいと思います。最初の2つの部分はうまく、私は3番目の部分と苦労しています。構造体の配列の配列を取り込みますか?
私はnot_trace_groupsに配列を割り当てようとすると、私のコードはコンパイルされず、これを正しく行う方法がわかりません。
typedef struct trace
{
uint32_t upstream_pin;
uint32_t dnstream_pin;
uint32_t led_pin;
}trace;
trace all_traces[NUM_TRACES] = {{GPIO_Pin_3, GPIO_Pin_7, GPIO_Pin_0},
{GPIO_Pin_4, GPIO_Pin_6 , GPIO_Pin_1},
{GPIO_Pin_5, GPIO_Pin_5 , PIO_Pin_1},
{GPIO_Pin_6, GPIO_Pin_4 , PIO_Pin_0},
{GPIO_Pin_7, GPIO_Pin_3 , GPIO_Pin_1},
{GPIO_Pin_0, GPIO_Pin_15, GPIO_Pin_2}};
trace not_trace_groups[NUM_TRACES][NUM_TRACES];
void main()
{
for (int i = 0; i < NUM_TRACES; i++)
{
not_trace_group[i] = {all_traces[i], all_traces[(i+1)%NUM_TRACES], all_traces[(i+2)%NUM_TRACES], all_traces[(i+3)%NUM_TRACES], all_traces[(i+4)%NUM_TRACES], all_traces[(i+5)%NUM_TRACES])};
}
while(1 == 1){
for (int i = 0; i < NUM_TRACES; i++)
{
trace_test(not_trace_group[i]);
}
}
void trace_test(trace cur_trace, trace not_trace1, trace not_trace2, trace not_trace3, trace not_trace4, trace not_trace5)
{
// do some stuff
}
Iは受信エラーがある:
error: expected expression before '{' token
not_trace_group[i] = {all_traces[i], all_traces[(i+1)%NUM_TRACES], all_traces[(i+2)%NUM_TRACES], all_traces[(i+3)%NUM_TRACES], all_traces[(i+4)%NUM_TRACES], all_traces[(i+5)%NUM_TRACES])};
私はアレイの第二のレベルは私は、この試したことはできませんたAssignTo恐らく考え
:
trace not_trace_groups[NUM_TRACES];
をこれが与えます同じエラー
typedefで初期化することはできません。とにかく、あなたのプログラムはすべてC言語で書かれていません。 –
これはむしろあいまいですが、配列を関数に渡してから、テストであるインデックスにフラグを立てると便利です。 (size_t i = 0; i
Lundin
' trace_test'は6つの引数をとりますが、あなたは1だけを指定しました。また、配列に代入することもできません。 –