这两个定义有什么区别啊?typedef struct xy { int x, y; struct xy *pxy;}xy;
typedef struct { int x, y; struct xy *pxy;}xy;
有趣哈 第二种其实还是有点问题的就是这种typedef struct { int x, y; struct xy *pxy; }xy;比如说我在main中下列代码就会报警告 xy *pxy1, *pxy2;pxy1 = (xy*)malloc(sizeof(xy));pxy2 = (xy*)malloc(sizeof(xy));pxy1 -> pxy = pxy2; 此处报警告 因为编译器 认为你 将两个不同类型的指针互相 给值 其中pxy2 是xy*类型 赋给了 pxy1 是struct xy*类型
typedef struct xy{ int x, y; struct xy *pxy; }xy;
int main(void){ xy *pxy1, *pxy2; pxy1 = (xy*)malloc(sizeof(xy)); pxy2 = (xy*)malloc(sizeof(xy)); pxy1 -> pxy = pxy2; return 0;}
你的意思是这样写吗?#include <stdio.h>#include <stdlib.h>
typedef struct { int x, y; xy *pxy; }xy;
int main(void){ xy *pxy1, *pxy2; pxy1 = (xy*)malloc(sizeof(xy)); pxy2 = (xy*)malloc(sizeof(xy)); pxy1 -> pxy = pxy2; return 0;}vc6.0编译出错