70.程序设计与实现
李先静
Only those who attempt the absurd can achieve the impossible.
展开
-
ZX手机平台的几个问题
转载时请注明出处和作者联系方式作者联系方式:李先静 花近一个月时间的研究,对ZX的手机开发平台有了大体上了解,总的说来,代码质量还算不错,可读性非常好。但其中有几点,觉得他们的做法值得考虑: 第一、所有窗口和控件的ID统一定义,放在一个文件中。这给引用某个窗口或者控件带来了方便,同时产生了很多副作用。如,增/删一个ID需要编译整个工程,这差不多要20分钟。这种引用的方便性造成大原创 2005-08-22 21:52:00 · 3299 阅读 · 0 评论 -
开发代码产生器的经验
开发代码产生器的经验 转载时请注明出处:http://blog.csdn.net/absurd/ 提到代码产生器,很容易让人联想到Rrose之类的工具,它们根据UML图产生相应的代码,同时还可以从代码反向生成UML图。Rrose是一个庞大的系统,自然让人觉得代码产生器也是一个复杂的东西,所以不少人对代码产生器抱着敬而远之的态度。其实,代码产生器可大可小,小则几行代码,大则数万原创 2006-08-26 17:14:00 · 8435 阅读 · 19 评论 -
两则C语言技巧
两则C语言技巧 转载时请注明出处:http://blog.csdn.net/absurd/ 以前用C++时,喜欢去玩一些语法上的技巧,每学到一个技巧都高兴得不得了,总是想找个地方用它,以显示自己的水平。其实我们应该更关心技巧的实用价值,如果一项技巧很巧妙,但很少用它,忘掉了也不必觉得可惜。最近发现两则C语言技巧,以前没有用过,觉得有些实用价值,做个笔记吧。 1.原创 2006-08-25 22:23:00 · 8057 阅读 · 11 评论 -
插件式设计的架构模型与实例
插件式设计的架构模型与实例----Do not call us, we will call you 转载时请注明出处:http://blog.csdn.net/absurd插件式设计近年来非常流行,其中eclipse起了推波助澜的作用,提到插件式就会不由自主的想到eclipse。其实插件式设计并不是什么新事物,早在几十年前就有了。像X Server就是基于插件式设计的,除原创 2006-07-04 21:55:00 · 17368 阅读 · 13 评论 -
分布式计算的基本原理
分布式计算的基本原理转载时请注明出处:http://blog.csdn.net/absurd 从最近几次MMI设计会议讨论的结果来看,嵌入式程序员对于分布式计算知之甚少。他们对分布式计算有种恐惧,所以对分布式架构极力排斥。而他们的人数又占绝对优势,讨论N次,MMI的架构还是没有确定下来。分布式计算已经进入桌面环境,不是企业应用的专利了,像GNOME(GNU Network Obje原创 2006-07-05 22:06:00 · 18567 阅读 · 4 评论 -
函数指针与软件设计
函数指针与软件设计 记得刚开始工作时,一位高手告诉我,说,longjmp和setjmp玩得不熟,就不要自称为C语言高手。当时我半信半疑,为了让自己向高手方向迈进,还是花了一点时间去学习longjmp和setjmp的用法。后来明白那不单是跳来跳去那样简单,而是一种高级的异常处理机制,在某些情况下确实很有用。 为了显示自己的技巧,也在自己的程序中用过几次。渐渐发现这样的技巧带来的好处是原创 2006-05-29 20:24:00 · 7223 阅读 · 11 评论 -
创建线程时的几个陷阱
创建线程时的几个陷阱 前几天帮同事查一个多线程的BUG,不到十秒钟我就找到了问题的根源。N年前我曾犯过类似的错误,呵,今天仍然有人在重复。这些问题都比较典型,把它们写出来,供新手参考吧。 l 用临时变量作为线程参数的问题。 #include stdio.h>原创 2006-05-25 20:54:00 · 5971 阅读 · 5 评论 -
检查新同事的代码时发现的问题
检查新同事的代码时发现的问题 今天看了一个组员的代码,他是今年才毕业的。在应届毕业生中,他的能力算是相当不错的了,所以我们才破格录用,并准他一个月假期回去答辩毕业论文。在他的代码中,发现几个问题,其中一些颇具代表性,把它们记下来供新手参考。 函数原型中没有参数名。比如,一个函数原型为int foo(const char*buff, size_t buff_length)的函数,他写原创 2006-05-16 20:03:00 · 5871 阅读 · 5 评论 -
Builder模式实例分析(C语言版)
Builder模式实例分析(C语言版) 转载时请注明出处:http://blog.csdn.net/absurd 设计模式、设计模式还是设计模式,设计模式已经被许多高手讲过了无数遍了。本来我无意再去重复被人重复过无数遍的工作,但按照我们的培训计划,现在该讲设计模式了,作为培训计划的制定者,我不能不贡献一点力量,所以最终决定写几篇关于设计模式的BLOG。本文的主题是Builder模式原创 2006-09-15 22:39:00 · 7595 阅读 · 4 评论 -
sscanf函数的高级用法
sscanf函数的高级用法 转载时请注明出处:http://blog.csdn.net/absurd/ 大家都知道sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。 1. 常见用法。原创 2006-09-04 22:40:00 · 19812 阅读 · 7 评论 -
设计log函数库的几个要点
只要留意一下大项目的源码,你会发现,几乎无一例外的包括一个log模块。它的功能很直观:记录一些程序运行时信息,多数情况是用来辅助debug的。大项目都有一套的log的函数,在它的基础上开发,调用它提供的Log函数就行了,比如linux内核、apache等。也有开源log函数库,可以直接拿过用。这里,我们并不鼓励重新发明轮子,但在少数情况下,确实不得不编写自己的log函数。下面是对以前的经验的原创 2006-02-11 20:45:00 · 4813 阅读 · 0 评论 -
编写可移植C/C++程序的要点
编写可移植C/C++程序的要点 转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd作者联系方式:Li XianJing 更新时间:2006-3-11 昨天看了05年的《程序员(精华本)》,里面有篇关于编写可移植的C++程序的文章,引起了我一丝兴趣,大致读了一下,有点启发。不过感觉作者是位学院派的人士,没有大型项目的移植经验,把移植想得太简原创 2006-03-11 22:47:00 · 6770 阅读 · 7 评论 -
如何使用成员函数指针
很长时间没有用过C++了,今天一位同事问我关于成员函数指针的问题。想了想,还是N年前用过一次,之后再也没有用过,印象不太深了。查了些资料,总终于想起来了,写一个例子在这里,以供以后查阅吧。 //build: gcc -g -lstdc++ mfp.cpp -o mfp.exe #include stdio.h>#include #include string.h>原创 2006-03-09 20:45:00 · 3465 阅读 · 2 评论 -
结构成员变量偏移量的两个应用
转载时请注明出处和作者联系方式作者联系方式:李先静 最近在阅读linux kernel的代码,发现很多地方都使用了一个名container_of的宏,根据上下文可以看出,它的功能是得到包含某个结构成员的结构的指针,看了一下宏的定义,原来并没有用什么高深的技巧,只是C语言中常识而已,其实现如下:(kernel.h)#define offsetof(TYPE, MEMBER) (原创 2005-10-17 20:09:00 · 3676 阅读 · 0 评论 -
枚举BIG5中的汉字
//Build: gcc -g big5.c -o big5.exe////0xa140 to 0xa3bf "Graphical characters" 圖形碼//0xa3c0 to 0xa3fe Reserved for user-defined characters 造字//0xa440 to 0xc67e Frequen原创 2005-10-03 18:57:00 · 5744 阅读 · 0 评论 -
枚举GB2312中的汉字
//Build gcc -g gb.c -o gb.exe////Characters in GB2312 are divided into codepoints, with each codepoint comprising 94 glyphs/characters.////The codepoints can be divided and categorised as://原创 2005-10-03 18:12:00 · 4283 阅读 · 0 评论 -
神奇的xx宏
转载时请注明出处和作者联系方式作者联系方式:李先静 前段时间研究lcc,看见token.h里有这样一些代码:xx(FLOAT, 1, 0, 0, 0, CHAR, "float")xx(DOUBLE, 2, 0, 0, 0, CHAR, "double")xx(CHAR, 3, 0, 0, 0,原创 2005-08-27 19:46:00 · 6047 阅读 · 8 评论 -
Argument list too long从何而来
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 这两天在Android eclair版本上增加WML浏览功能,以前在cupcake版本(broncho a1)上实现过,技术上倒是没有什么难题,但编译时总是出现Argument list too long的错误。WebKit里源文件太多,没有WML时还可以编译过去,但加原创 2010-01-15 09:09:00 · 4601 阅读 · 3 评论