07/11/30 22:40:30
Cで動的初期化というか、やりたいのは以下のような感じなんだが、
いいアイディアない?
あるヘッダファイルに以下のような定義がある。
typedef const struct ID_ {
uint32_t a;
uint8_t bc[2]
} * ID;
extern const ID ID_HOGE;
んで、実体は以下のような感じ。ちなみにID_HOGE_は公開されていない。
static const struct ID_ ID_HOGE_ = {0xaaaa, {0xbb, 0xcc}};
const ID ID_HOGE = &ID_HOGE_;
んで、このIDと名前みたいなヤツの対応を静的に書いておきたい。
struct {
ID id;
char *name;
} MAP;
static struct MAP map[]={
{ID_HOGE,"hoge"},
...
};
だが、動的な初期化が出来ないってコンパイラにはじかれてしまう。
どうしたらいい?ボスケテ天才プログラマー。