/*函数指针模拟类和继承的程序例子,
同时还示例了#pragma pack的用法*/
#include <stdio.h>
void f1(void)
{
printf("f1 ");
}
void f2(void)
{
printf("f2 ");
}
void f3(void)
{
printf("f3 ");
}
/*以下用两个结构体来模拟类和类继承,即每个结构体有成员变量
和成员函数,menu结构体可以访问baseclass的成员变量和函数,
相当于继承了bseclass*/
#pragma pack(push, 1)
typedef struct test
{
unsigned char a;
unsigned char b;
unsigned int c;
int d:1;
}test;
/*在#pragma pack(push,1)和#pragma pack(pop)之间的结构体按1字节压缩存放
#pragma pack(1)后面所以的都要按1字节压缩存放menu“类”可以访问基类
“baseclass”成员*/
#pragma pack(pop)
#pragma pack(1)
typedef struct baseclass
{
char *basename;
char c;
void (*baseFun)(void);
}baseclass;
typedef struct menu
{
char *name;
int x;
int y;
ba