前几天我有这个结构:
struct foo_t {
char a, b, c;
} *foo = (foo_t*)untyped_memory;
...但是为其命名的类型过多。但是,其未命名形式:
struct {
char a, b, c;
} *bar = untyped_memory;
...由于指针类型不兼容而无法编译。
有什么办法可以使它工作?
答案 0 :(得分:6)
如果您有权使用C ++ 11或更高版本,则可以使用decltype
,即
struct {
char a, b, c;
} *bar = (decltype(bar))untyped_memory;