から静的に割り当てられた配列を作成するのは、私は2つの静的に割り当てられたグローバルな配列を持っているとしましょう:2つの他のアレイ
const int foo[] = {1, 2, 3};
const int bar[] = {4, 5, 6, 7};
後、私はまた、静的に割り当てられているされた配列を宣言したいのですが、同じコンパイル単位にfoo
とbar
の連結:
const int foo_and_bar[] = ... ?
可能かどうか?もちろん
、私は
#define FOO_CONTENTS 1, 2, 3
#define BAR_CONTENTS 4, 5, 6, 7
const int foo[] = {FOO_CONTENTS};
const int bar[] = {BAR_CONTENTS};
const int foo_and_bar[] = {FOO_CONTENTS, BAR_CONTENTS};
...のようなマクロで醜い何かができる...しかし、私はC言語自体でサポートされているイディオムを探しています。
「本当に醜い」とは何ですか? – Leushenko
おそらく、私はちょうど "醜い"と言うことができました - "本当に醜い"は誇張かもしれません! 「この配列は他の2つの先の宣言された変数の内容を持つ必要があります」という表現ではなく、すべての配列宣言をマクロと宣言に分割する必要があるため、醜いです。マクロを解読してファイルなどで見つけ出す必要があるため、コードを読むのが難しくなります。これらの行に沿って静的に割り当てられたintを配列などに配置する他の多くのシナリオでは、プリプロセッサのサポートは必要ありません。 – BeeOnRope