4

Arduino IDEで、次のような2つの既存のアレイのコンテンツを追加したいと思います。

#define L0 { {0, 0, 0, 0}, {0, 0, 0, 1}, {0, 0, 0, 0} }
#define L1 { {0, 0, 0, 1}, {0, 0, 0, 0}, {0, 0, 0, 0} }

になる必要があります

   int myarray[3][4] = { {0, 0, 0, 1}, {0, 0, 0, 1}, {0, 0, 0, 0} }

どうすればいいですか?

ありがとう!

4

2 に答える 2

2

配列にアクセスL0する方法と、配列L1がマクロとして定義されているため、混乱していると思います。プリプロセッサは単純にそれらを置き換えるので、それらを配列に割り当てるだけです:

int l[][4]=L0;
int m[][4]=L1;

プリプロセッサはL0andL1をその値に置き換え、コンパイラはそれらを次のようにのみ認識します。

int l[][4]={ {0, 0, 0, 0}, {0, 0, 0, 1}, {0, 2, 0, 0} };
int m[][4]={ {0, 0, 0, 5}, {0, 0, 0, 6}, {0, 0, 7, 0} };

これで、l&mを使用して配列の要素にアクセスできます。ここから2つの配列を追加するのは簡単です:)

于 2012-10-12T19:44:28.817 に答える
2

あなたのこれ;

const int a[3][4] = { {0, 0, 0, 0}, {0, 0, 0, 1}, {0, 0, 0, 0} };
const int b[3][4] = { {0, 0, 0, 1}, {0, 0, 0, 0}, {0, 0, 0, 0} };

int c[3][4];

const int* pa = &a[0][0];
const int* pb = &b[0][0];
int* pc = &c[0][0];

for(int i = 0; i < 3 * 4; ++i)
{
    *(pc + i) = *(pa + i) + *(pb + i);
}
于 2012-10-12T20:34:57.077 に答える