07/12/01 01:34:09
>>498
そのやりかたではできない。
どうせmapは変更しないのだろうから、ID構造体を隠蔽してそのポインタを提供するのではなく
MAP構造体を隠蔽してそのポインタを提供する方式にするんだ。
// id.h
typedef struct{
uint32_t a;
uint8_t bc[2]
}ID;
typedef struct{
const ID *id;
const char *name;
}MAP_;
typedef const MAP_ * const MAP;
extern MAP map;
// id.c
static ID ID_HOGE_ = {0xaaaa, {0xbb, 0xcc}};
static MAP_ map_[]={
{&ID_HOGE_,"hoge"},
...
};
MAP map=map_;
これでいけるはず