由bool类型引发的一个问题
C99 原生支持布尔类型,类型名字为\_Bool。对C程序员来说,这个名字有些“不伦不类”,还好一般C标准库 实现的头文件中都用宏bool来替代\_Bool。C99虽说是C语言当前的最新标准,但是它也有10年历史之久了。据说C1x标准 正在讨论制定中,有兴趣的朋友可以到标准C工作组 官方站点上去瞧瞧。 有些跑题了^\_^!其实这篇文章想说的不是C1x标准,而是一个与布尔类型有关的问题的分析解决过程...
C99 原生支持布尔类型,类型名字为\_Bool。对C程序员来说,这个名字有些“不伦不类”,还好一般C标准库 实现的头文件中都用宏bool来替代\_Bool。C99虽说是C语言当前的最新标准,但是它也有10年历史之久了。据说C1x标准 正在讨论制定中,有兴趣的朋友可以到标准C工作组 官方站点上去瞧瞧。 有些跑题了^\_^!其实这篇文章想说的不是C1x标准,而是一个与布尔类型有关的问题的分析解决过程...
由于某种原因,上周末开始学习使用TeX进行文档排版。哦,当然不是直接使用Donald Knuth他老人家设计的最原始的TeX命令。经过这么多年的发展,TeX领域早已出现了各种各样基于TeX开发的层次更高、易用性更好、更加让作者关注内容的好工具。在Ubuntu下,我选择了"TeX Live"。 周末的时间比较零碎(有了果果后,除了晚上外白天很难拿出一长段的时间钻研些东西了),TeX Live安装和体...
上午对一段代码进行单元测试,由于需要用到mock,所以选择使用cmockery 作为Unit Testing框架(lcut还未提供mock功能)。测试代码里需要mock malloc以模拟分配内存失败的异常情况。 编写一个用例后,Build,提示出错:multiple definition of \`malloc'。经检查发现Makefile中定义mock malloc的那个目标文件(.o文件)居...
自从LP上班后,果果一直由岳母照顾。带小孩子是一件很辛苦的差事,这个我和LP也十分清楚,这不这个十一假期我们让岳母回家歇息歇息^\_^,这七天就由我和LP照顾果果。 平时我和LP都是朝九晚五的作息,由于公司离家较远,我们下班到家基本上都是晚上六点以后了。我回家更晚,有时候到家时果果已经被哄睡着了。这样我们和果果在一起的时间实际上并不多,甚至对果果新近养成的一些习惯了解得都不多,一切还要慢慢适应。 ...
昨天看了“外刊IT评论”上的一篇名为《软件编程21法则》的文章,文章中提到的一条法则是:“软件直到被变成产品运行至少6个月后,它最严重的问题才会被发现”,当时表示认同。不过仅仅相隔一天,这条法则就变成了眼前的现实。 今天上午我们的某版本系统在某省出现了故障,该版本在这个省上线恰好将近6个月^\_^,系统上线以来一直运行良好,直到这次故障。故障现象为"挂死":所有进程都挂死在某一把锁的lock上。以...
基于各种xUnit框架的单元测试早已不是什么新鲜玩意儿,不过在"古老"的C语言领域,还尚未有哪种框架可以成为“寡头”。 记得2005年末的时候,初出茅庐的我吸取xUnit的设计思想在业余时间编写了一个轻量级的C单元测试框架lcut(Lightweight C Unit Test framework),当时还写了一篇文章《C单元测试包设计与实现》记录了最初的设计和实现思路。本打算将这个小工具在部门内...
部门绝大多数的产品都运行在Sun的小型机上,底层的操作系统是Solaris。这两年公司开始主推刀片机(物美价廉^\_^),不过刀片机上运行的也是Solaris 10 for x86版本。基于同种OS的前提下在Sparc和x86两种体系之间做移植比较简单,主要考虑字节序问题就可以了。不过对于可移植性的考虑不足还是让我们付出了较大的工作量。 在即将进行的新版本产品开发中,可移植性依旧没有被列入到必须要...
"百岁照是一种民间传统,一种在小孩100天时候拍的照片,代表了人们对孩子的祈福,希望孩子能长命百岁。" — 百度百科 在果果103天的时候我和LP一起带着果果去拍了一套百岁照。拍摄的过程很“艰苦”^\_^:从上午9点一直持续到下午3点,其间果果睡了三次,哭了若干次,不过结果还是不错的,这不今天我和LP把照片取了回来。和我们那一代相比,现在的小孩子幸福多了。在我LP的钱包里放着我的一张儿时的照片,那...
今天下午花了一个小时分别和两位同事做了一些代码讨论,这两位同事正在编写的代码都具有一定的试验性质(暂不能进入项目代码库)。这里不谈代码如何如何,而是就我发现的一个问题谈谈我的看法。 问题其实也很简单:那就是两位同事“不约而同”的都没有对这类试验性质的代码进行很好的备份和版本管理。 也许你看到这里会觉得这个芝麻粒儿大的问题不值得一提。没错,可能很多人都不以为然,不过有过以下经历的朋友们也许会与我产生...
近一段时间重读了一些经典书籍,诸如《敏捷软件开发:原则、模式与实践》、 《程序员修炼之道》、《Unix编程艺术》等。这些书中关于如何衡量或评价一个类或函数设计好坏的几个原则(Principle)让人印象深刻。《敏捷软件开发》中谈到了SRP、OCP、DIP; 程序员修炼之道则以DRY、“正交性”为话题展开;《Unix编程艺术》围绕紧凑性、SPOT、分离等阐述作者立场。这么多经典原则,如何学习把握?我...