摘要: 1. 缘起 来自BBS上的面试题目,struct{int a; char b;}的大小是多少?答案是8。上网看了下,是字节对齐。2. 字节对齐的基本规则首先,每种类型的变量的默认对齐长度都是自己的变量长度,比如:char占一个字节,那么对齐长度就是一个字节,int占四个字节,对齐长度就是四个字节,double占八个字节,对齐长度就是8。int的对齐长度为4的实际意义是,int变量必须存储在四的倍数的地址上。 那么对于struct{char b; int a},其长度是8,因为b虽然只占用1个字节,但是a必须从4的倍数开始存储,因此b后面的3个字节都废掉了。因此一共需要8个字节才能把b和a存下来 阅读全文
posted @ 2011-05-20 15:34 xiaodongrush 阅读(3315) 评论(5) 推荐(0) 编辑
摘要: 1. 概述 势函数属于物理学原理,我们主要使用势函数控制游戏里单位的行为。例如,我们可以使用势函数,建立成群结队的单位,仿真群体移动,处理追逐和闪躲,以及避开障碍物问题。我们专门研究的势函数叫做Lenard-Jones势函数。物理学中,Lenard-Jones势能代表的是,分子间吸引和排斥的势能。这里的U代表的是原子内的势能,和分子的间隔距离r成反比。A和B是参数,与m和n这两个指数一样。如果我们取该势函数的导数(derivative),就可得到一个代表某力的函数。这个力函数根据这两个分子的接近程度,产生引力和斥力,就我们的情况而言,分子指的就是游戏中正在行动的单位。就是这种可以表示引力和斥力 阅读全文
posted @ 2011-05-20 10:20 xiaodongrush 阅读(1161) 评论(0) 推荐(0) 编辑