小编Ano*_*non的帖子

C中的结构和铸造

我在想:

如果我有结构定义,例如,像这样:

struct Base {
  int foo;
};

struct Derived {
  int foo; // int foo is common for both definitions
  char *bar;
};
Run Code Online (Sandbox Code Playgroud)

我可以这样做吗?

void foobar(void *ptr) {
  ((struct Base *)ptr)->foo = 1;
}

struct Derived s;

foobar(&s);
Run Code Online (Sandbox Code Playgroud)

例如,当它的类型实际上时,将void指针强制转换Base *为访问它?fooDerived *

c struct pointers casting

10
推荐指数
2
解决办法
1411
查看次数

标签 统计

c ×1

casting ×1

pointers ×1

struct ×1