/给结构体取别名
//可以很方便的辨别
typedef struct Man JavaMan;
typedef struct Man* JM;
//简写
//W是给WoMan结构体取的别名
//*WM是WoMan结构体指针的别名
typedef struct WoMan{
char* name;
int age;
} W,*WM;
void main(){
//结构体变量
W w1 = { "tom", 16 };
//结构体指针变量
WM wm = &w1;
printf("%s,%d\n", w1.name, w1.age);
printf("%s,%d\n", wm->name, wm->age);
getchar();
}*/
//结构体函数指针成员
/*struct Girl{
char* name;
int age;
//函数指针
void(*say)(char*);
};
//Girl结构体类似于Java中的类,name和age类似于属性,sayHi类似于方法
void sayHi(char* c){
MessageBox(0, c, "title", 0);
}
void main(){
struct Girl girl;
girl.name = "rose";
girl.age = 16;
girl.say = sayHi;
girl.say("hello world");
getchar();
}*/
typedef struct Girl{
char* name;
int age;
//函数指针
void(*say)(char*);
} Girl;
//Girl结构体指针取别名GirlP
typedef Girl* GirlP;
void sayHi(char* text){
MessageBox(0, text, "title", 0);
}
void rename(GirlP gp1){
gp1->name = "Lily";
}
void main(){
//赋值
Girl g1 = { "Lucy", 18, sayHi };
//指针
GirlP gp1 = &g1;
//调用方法
gp1->say("Byebye!");
//传递指针,改名
//rename(&g1); 这个老是错误
getchar();
}