摘要: 在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。例如,下面的结构各成员空间分配情况:struct test{ char x1; short x2; float x3; char x4;};结构的第一个成员x1为char类型,其自然对界为1,其偏移地址为0,占据了第1个字节。第二个成员x2为short类型,其自然对 阅读全文
posted @ 2011-02-12 16:39 oayx 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 欢迎进入内存这片雷区。伟大的Bill Gates 曾经失言:640K ought to be enough for everybody — Bill Gates 1981程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。7.1内存分配方式内存分配方式有三种:(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2) 在栈上创建。在执行函数时,函数内局部 阅读全文
posted @ 2011-02-12 16:38 oayx 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 酷壳: http://CoolShell.cn/ 原文: http://coolshell.cn/?p=2746在酷壳,有很多文章都提到了代码注释,如:《十条不错的编程观点》、《优质代码的十诫》、《整洁代码的4个提示》、《惹恼程序员的十件事》等等。今天,某国外的程序员在这里列举五种应该避免的程序注释,我觉得比较有道理,但我觉得有少数几个观点也并不绝对。所以,我把原文的这五种应该避免的程序注释罗列在下面,并放上原作者和我的个人观点作为比较。希望对大家有用。一、自恋型注释(注:原文为Proud,我觉得“自恋”更好一点)public class Program 阅读全文
posted @ 2011-02-12 16:27 oayx 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 据 Drew 所知最短路经算法现在重要的应用有计算机网络路由算法,机器人探路,交通路线导航,人工智能,游戏设计等等。美国火星探测器核心的寻路算法就是采用的D*(D Star)算法。 最短路经计算分静态最短路计算和动态最短路计算。 静态路径最短路径算法是外界环境不变,计算最短路径。主要有Dijkstra算法,A*(A Star)算法。 动态路径最短路是外界环境不断发生变化,即不能计算预测的情况下计算最短路。如在游戏中敌人或障碍物不断移动的情况下。典型的有D*算法。 这是Drew程序实现的10000个节点的随机路网三条互不相交最短路 真实路网计算K条路径示例:节点5696到节点3006,三条最快 阅读全文
posted @ 2011-02-12 16:14 oayx 阅读(3557) 评论(0) 推荐(1) 编辑
摘要: 1、不要试图重载||,&&操作符,因为它们使用短路求值法(一旦确定了布尔表达式的真假值,即使还有部分表达式没有被测试,布尔表达式也停止运算),而重载之后采用的是函数调用法。首先当函数被调用时,需要运算其所有参数,所以调用函数functions operator&& 和 operator||时,两个参数都需要计算,换言之,没有采用短路计算法。第二是C++语言规范没有定义函数参数的计算顺序,所以没有办法知道表达式1与表达式2哪一个先计算。完全可能与具有从左参数到右参数计算顺序的短路计算法相反。同样,也不要试图重载逗号(,)操作符,因为 阅读全文
posted @ 2011-02-12 15:32 oayx 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 这个最好看MSDN,讲的比较清楚http://msdn.microsoft.com/en-us/library/aa366599(VS.85).aspx不过要注意以下几点:1 申请的私有内存只能被调用进程(就是call这个api的进程)使用2 HANDLE WINAPI HeapCreate( __in DWORD flOptions, __in SIZE_T dwInitialSize, __in SIZE_T dwMaximumSize);第三个参数的设置,如果指定为0的话,则堆可以在需要的情况下不断增大。Applications that need to allocate large m 阅读全文
posted @ 2011-02-12 14:03 oayx 阅读(4127) 评论(0) 推荐(0) 编辑