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