关于指针强制类型转化的有关问题

关于指针强制类型转化的问题定义程序段如下:typedef struct _Position{int xint y}Positionint test(vo

关于指针强制类型转化的问题
定义程序段如下:
typedef struct _Position{
int x;
int y;
}Position;
int test(void *p){
Position pos;

pos.x = (Position)p.x;
pso.y = (Position)p.y;

}
但是编译的时候出现错误。请教,关于指针的强制类型转换应该如何更改

[解决办法]
p要转化成指向Position类型的指针,所以应该是:

C/C++ code
pos.x = ((Position *)p)->x;pos.y = ((Position *)p)->y;
[解决办法]
多使用圆括号来表示操作符结合优先级
虽说我的风格已经偏向于过度使用,不过起码用不着担心编译器弄错我的意思
[解决办法]
探讨

p要转化成指向Position类型的指针,所以应该是:
C/C++ code


pos.x = ((Position *)p)->x;
pos.y = ((Position *)p)->y;

[解决办法]
探讨
引用:

p要转化成指向Position类型的指针,所以应该是:
C/C++ code


pos.x = ((Position *)p)->x;
pos.y = ((Position *)p)->y;


建议楼主参考这个。

[解决办法]
pos.x = ((Position *)p)->x;
pos.y = ((Position *)p)->y;