mysql 实例结构体_C语言结构体实例-创建兔子

参考裸编程思想。

#include

//#include "ycjobject.h"

// 颜色定义

#define CL_BLACK0

#define CL_WHITE1

#define CL_GRAY2

// 物种身份ID定义

#define ID_GRASS0x0001

#define ID_CARROT0x0002

#define ID_GREENVEGETABLE0x0004

#define ID_RABBIT0x0010

#define ID_FISH0x0020

#define ID_WOLF0x0100

// 空指针定义

#define NIL0

// 函数指针类型定义

typedef char (*teat)(unsigned food);

typedef void (*trun)(void);

typedef unsigned (*species)(void);

// 兔子类

struct TRabbit

{

species id;// 类的类型标识

species food;// 食物常量

species enemy;// 敌人常量

unsigned char color;// 颜色变量

float weight;// 重量变量,以千克为单位

unsigned char age;// 年龄变量,以月为单位

teat Eat;// 吃行为

trun Run;// 跑行为

};

// ===== implement =====

// 功能:返回兔子的类型

// 参数:无

// 返回:兔子的类型

// 备注:

unsigned rabbitId(void)

{

return ID_RABBIT;

}

// 功能:返回兔子的食物

// 参数:无

// 返回:兔子的食物

// 备注:多种食物一次返回

unsigned rabbitFood(void)

{

return ID_GRASS|ID_CARROT|ID_GREENVEGETABLE;

}

// 功能:返回兔子的敌人

// 参数:无

// 返回:兔子的敌人

// 备注:多种敌人一次返回

unsigned rabbitEnemy(void)

{

return ID_WOLF;

}

// 功能:兔子吃

// 参数:food,unsigned类型,喂给兔子的食物

// 返回:0:没吃成

// 1:吃成了

// 备注:

char rabbitEat(unsigned food)

{

// 都说兔子不吃窝边草

// 那么不是窝边的草就可以吃

// 它兔窝边的草不是我窝边的草,所以也可以吃

// 还有,萝卜和青菜,也可以吃

// 兔子不能吃兔子,不能吃鱼,更不能吃狼

return (food & 0x0007);

}

// 功能:兔子跑

// 参数:无

// 返回:无

// 备注:

void rabbitRun(void)

{

// 可以蹦

// 可以跳

// 可以跑

}

// 功能:兔子类创建

// 参数:aRabbit,TRabbit类型,一只兔子

// 返回:无

// 备注:

void rabbitCreate(struct TRabbit *obj)

{

// 常量初始化

obj->id = rabbitId;

obj->food = rabbitFood;

obj->enemy = rabbitEnemy;

// 变量初始化

// 因为变量初始化没有意义,所以不做

// 行为(方法)初始化

obj->Eat = rabbitEat;

obj->Run = rabbitRun;

}

int main(void)

{

// 申请对象空间-兔子1

struct TRabbit Rabbit1;

// 申请对象空间-兔子2

struct TRabbit Rabbit2;

// 创建兔子1对象

rabbitCreate(&Rabbit1);

Rabbit1.color = CL_WHITE;

Rabbit1.weight = 1.03;

Rabbit1.age = 3;

// 创建兔子2对象

rabbitCreate(&Rabbit2);

Rabbit2.color = CL_GRAY;

Rabbit2.weight = 1.28;

Rabbit2.age = 4;

// 兔子1吃萝卜

Rabbit1.Eat(ID_CARROT);

// 兔子2跑

Rabbit2.Run();

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值