系统程序员
文章平均质量分 62
codetracer
学习造轮子
展开
-
这个兼容windows的Linux很吸引人哦~~毛德操先生弄得~
<br />http://www.longene.org/aboutproject.php原创 2010-12-03 18:41:00 · 1084 阅读 · 0 评论 -
extern“C”
<br />见过好多次,这里记录一下<br /> <br />C++允许同名函数存在,所以编译器会对函数名重新编码。C++代码包含C语言的头文件时,重新编码名字与C语言库中的原函数名不一致,结果造成找不到函数的情况。为了让C语言实现的函数在C++中可以调用,需要在头文件中加点东西:<br /> <br /> <br />#ifdef __cplusplus<br />extern "C"{<br />#endif<br /> ...<br /> ...<br />#ifdef __cpluspl原创 2010-12-03 19:25:00 · 344 阅读 · 0 评论 -
提高效率!
<br />1.编程时,我们的时间花在哪?<br /> a,需求分析,然后根据需求进行设计。<br /> b,测试……<br /> c,调试.....这个是最后一招,只有在迫不得已的情况下才使用,没有什么比一次性写好,不使用调试器更快的方法了。<br />2.解决方法。<br /> Code Review方法,比如结对编程,一个人编写程序,另一个Review输入每一行代码,前者专注于目前的细节上,后者从高层次考虑如何改进代码质量,两个人的角色会经常互换。<br /> 敲完代码最原创 2010-12-05 19:22:00 · 534 阅读 · 0 评论 -
Don't Repeat YourSelf (DRY)
<br />在写双向链表的打印,求和,找出最大数的时候,很明显,都是需要遍历的,因此,可以使用函数回调的方法,写一个遍历函数,留一个回调参数,呵呵,增强了代码的灵活性啊。<br /> <br />1.不要编写重复的代码。<br />有很多问题:<br /> a.虽然重复的代码很容易写,但是更容易出错。使用相类似的代码,我们更容选择使用“CV”,但是这样很容易犯一些细节上的错误,如果某个地方修改不完整,就容易留下定时炸弹!<br /> b.重复的代码经不起变化。无论是修改BUG,还原创 2010-12-03 20:12:00 · 600 阅读 · 0 评论 -
通用的双向链表
#ifndef __STDLIST_H__#define __STDLIST_H__/** 这个通用双向链表就是一个简单的链,但是通过提供的扩展宏,可以嵌套在许多结构中* 使得相应的结构成为一个链表。* typedef struct tagMSGNODE* {* DECLARELISTNODE();* UNIT uMsg;* WPARAM wParam;* LPARAM lParam;* }MSGNODE, *LPMSGNODE;*** STD原创 2010-12-03 13:03:00 · 604 阅读 · 0 评论 -
常犯的错误,(有时间读读《COM本质论》)
1.结构体成员顺序发生变化引发的错误。struct s{ int l; char* p;};int main(int argc, char* argv[]){ struct s s1 = {4, "abcd"}; //使用struct s s1 = {.l = 4, .p = "abcd"};更好,不怕顺序发生变化 return 0;}原创 2010-12-05 20:02:00 · 615 阅读 · 0 评论 -
测试的几个问题
<br />1.每个函数只完成单一的功能。<br /> 单一功能的函数容易理解,也容易预测其行为。测试的时候,给定一些输入数据就知道它的输出和影响,易于测试。<br /> <br />2.把函数分为查询和命令两类。<br /> 查询函数只查询对象的状态,而不改变对象的状态。命令函数则只修改对象的状态,只返回其操作是否成功的标志,而不返回对象的状态。<br /> <br />3.验证输入数据,确认使用者正确的调用了函数。<br /> assert检查仅用于debug版本。<br />原创 2010-12-09 21:34:00 · 520 阅读 · 0 评论 -
动态数组,扩充和缩小
<br /> <br />//首先是数据结构,size记录使用的空间,alloc_size记录分配的空间 data为指针的指针,为了灵活性,必须的。<br />struct _DArray<br />{<br /> size_t size;<br /> size_t alloc_size;<br /> void** data;<br />};<br />typedef struct _DArray DArray;<br /> <br />//一些接口的定义。<br原创 2010-12-17 21:52:00 · 1221 阅读 · 0 评论 -
比较规整通用的二分查找
<br />int qsearch(void** array, size_t nr, void* data, DataCompareFunc cmp){ int low = 0; int mid = 0; int high = nr-1; int result = 0; return_val_if_fail(array != NULL && cmp != NULL, -1); while(low <= high)原创 2010-12-27 19:24:00 · 543 阅读 · 0 评论