c++ - 如何将指针转换为未命名的结构指针?

标签 c++

前几天我有这个结构:

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;

关于c++ - 如何将指针转换为未命名的结构指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52129910/

相关文章:

c++ - pthread_join 错误代码 3

c++ - 如何检查字符数组是否组合成某些连续的字符列表?

c++ - 使用从文件中获取的维度创建一个双数组

c++ - 为什么我的凸包周长计算不起作用?

c++ - 为什么我会在意外标记附近收到语法错误?命令行参数?

C++——为什么我们必须定义这个友元模板类

C++ - 更改成员值时调用函数

c++ - 用于 Visual Studio 的零参数参数计数宏

c++ - 如何有效地制作唯一路径名的 vector

c++ - 如果用户输入的输入大于 char 数组,cin.getline 会跳过输入提醒