摘要: linux下开发经常会碰到这2个宏,总结下:1 #define offsetof(TYPE, MEMBER) ((size_t) & ((TYPE *)0)->MEMBER )宏功能:获得一个结构体变量成员在此结构体中的偏移量1. ( (TYPE *)0 ) 将零转型为TYPE类型指针;2. ((TYPE *)0)->MEMBER 访问结构中的数据成员;3. &( ( (TYPE *)0 )->MEMBER )取出数据成员的地址,即相对于0的偏移量,要的就这个;4.(size_t)(&(((TYPE*)0)->MEMBER))结果转换类型,siz 阅读全文
posted @ 2013-11-19 16:19 城市*斗士(技术) 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 转载自百度百科经历了一次面试,里面就有对sizeof的考量,特转载在这里。sizeof,我们称之为函数,这种叫法不准确,因为其对字节数的计算在程序编译时进行,而不是在程序执行的过程中才计算出来。其返回值类型为size_t,在头文件stddef.h中定义。这是一个依赖于编译系统的值,一般定义为1typedef unsigned int size_t;世上编译器林林总总,但作为一个规范,它们都会保证char、signed char和unsignedchar的sizeof值为1,毕竟char是我们编程能用的最小数据类型。语法sizeof有三种语法形式,如下:1231) sizeof( object 阅读全文
posted @ 2013-11-19 16:12 城市*斗士(技术) 阅读(1027) 评论(0) 推荐(0) 编辑
摘要: 上图是C中基本的类型分类,在做某些计算时会用到。比如调用sizeof时,需分清求的是哪种类型的值,类型不同占用的内存大小不同。好久没去想这些东西了,这里做个记录。 阅读全文
posted @ 2013-11-19 15:25 城市*斗士(技术) 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 1.待客之道很重要,好的交往过程才可以交到朋友。心一定要诚,不合己意则要说,彼此都是平等的。2.干事情时,不要把自己太当人,也不要把别人太当人。人在合作时,不考虑自己是傻,只考虑自己也是傻,一定要把握一个度。3.如何表达自己的意见是门艺术,不要因为怕表达不好而不表达,要勇于诚心诚意的表达。事情因此终结,只能说明彼此无缘。4.事业一定要有生产体系,分工明确,各个主体之间才能看到成绩。只有这样才是竞争力最强的,最有效率的。土八路也能干倒正规军。5.有胆识的冒险很重要,富贵险中求,同时勇于承担责任,遵守契约。6.神即道,道法自然,如来。探寻规则,分析规则,顺应规则。 阅读全文
posted @ 2013-11-14 23:48 城市*斗士(技术) 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 写过很多游戏,在了解了组件模型后,一直想着自己能用这一理念创建自己的游戏。在重新复习过《游戏编程精粹5》中的文章后,做如下总结,以后可以更考虑清楚:1.组件模型把以前的树状继承变成扁平状,类似MUD,让系统更加扁平化。2.每一个组件系统必存在一个对象管理器,每一个对象由不同的组件组成。3.broadcastMessage不是对所有的对象广播,而是对所有 对此消息感兴趣的组件广播,减少遍历次数。4.postMessage则只对某一个对象的组件进行广播,这里需注意消息死循环,同时注意考虑到如何在消息传递的过程中,尽量减少循环的次数。5.组件模型对内存的管理是个挑战。 阅读全文
posted @ 2013-11-14 00:06 城市*斗士(技术) 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 今天编程时碰到一个问题,写了一个单例的类模板,之前程序一直能跑,但今天使用了其中一个函数时却报错。后续查错,发现是自己忘记写结束符号了。这就引出我知识点的不足了——之前为啥能跑正常?错误一只存在,为啥总是能编译通过?类中的函数何时才被实例化?类何时实例化?实例化的类是不是所有的函数都同时被实例化?整理和理解网上资料后获得如下总结:1.在我们使用类模板时,只有当代码中使用了类模板的一个实例的名字,而且上下文环境要求必须存在类的定义时,这个类模板才被实例化。 1.1声明一个类模板的指针和引用,不会引起类模板的实例化,因为没有必要知道该类的定义。 1.2定义一个类类型的对象时需要该类的定义,因此.. 阅读全文
posted @ 2013-11-13 00:24 城市*斗士(技术) 阅读(3632) 评论(0) 推荐(0) 编辑
摘要: 前几天写自己的开源项目robotech(地址:git@code.csdn.net:dengqianyi/robotech.git),碰到一个很莫名其妙的问题,在调用CCTiledMap类时,类的实现中得到的纹理大小总是为NULL.经过一番查找与实验,发现问题点在于自己的代码调用的地方。因为是自己设计的一个框架,不再是简单的类似cocos2d-x一般的游戏方式(ccscene+cclayer),所以一些全局变量在使用时,要考虑到初始化的问题,在这里就栽了一个跟头。先说说cocos2d-x的mainloop流程:(参考网址http://blog.csdn.net/marcus_x/article/ 阅读全文
posted @ 2013-11-05 22:46 城市*斗士(技术) 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 题目:一个长度为L米的材料,需要截成长度为a米和b米的短材料,求两种短材料各截多少根时,剩余的材料最少。解法:冒泡算法#includevoid main(){ int L,a,b,x,y,i,j,sub,min; int maxa,maxb; printf("请输入材料长度L:"); scanf("%d",&L); printf("请输入短材料a和b的长度:"); scanf("%d%d",&a,&b); min=L; maxa=L/a;//a材料最多的数目 maxb=L/b;//b材料最多 阅读全文
posted @ 2013-11-01 09:56 城市*斗士(技术) 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 原地址:http://www.cocoachina.com/gamedev/misc/2013/1018/7196.html我的软件开发生涯开始于15年前。但是直到最近的5年,我才真正开始看到自己在软件开发领域的巨大进步。这里有一些感悟是我希望能够在我进入软件开发领域时所知道的事情,如果我早一些领悟到,相信会比现在更加成功,也更节省一些时间。软件开发工作没有“正确方法”在软件开发生涯的早期,我曾经浪费了大量的时间在学习和争辩,错误的相信有一条“绝对正确的方法”能够应付软件开发的很多方面。结果证明我曾经认为关于软件开发的每一件正确的事情到最后都是错误的。但是更重要的是,我发现很少有事情是黑白分明 阅读全文
posted @ 2013-10-23 13:23 城市*斗士(技术) 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 本文转自:http://xxnull.blog.163.com/blog/static/176398157201181991147848/首先,我们来简单了解一下lua中的Table。Table是lua中唯一内置的数据结构类型。也就是说,它没有内置list、array、map、 set等等数据结构类型。在lua里面那些数据类型都是通过Table来实现的。在lua中的,Table是非常强大和重要的。当我们需要将lua嵌入到 应用程序里面的时候,不可避免的需要操作Table。本文就来讨论一下如何在C语言中读取Lua中Table的内容。 其实,Lua中Table是array与map的混合。它即可想a 阅读全文
posted @ 2013-08-28 11:37 城市*斗士(技术) 阅读(1123) 评论(0) 推荐(0) 编辑