随着万圣节越来越流行,我感觉有必要跟大家讨论一下一个在软件开发中非常普遍的问题:僵尸代码。几乎所有我接触过的代码库里都四散着很多小段的,甚至大片大片的被注释掉的代码。这就是僵尸代码。

// 目前禁用这项功能。Jimmy在写这段代码时肯定是喝醉了。

// 你可能以为这里发生了恐怖的代码凶手安…不,不,我只是把它们注释掉了…

为什么称它们为僵尸代码?你知道,僵尸不并不是真的死的。就像恐怕电影里告诉我们的,尽管僵尸看起来是死人,但它们仍有能力四处出没袭击我们。相同的道理,僵尸代码也是处于不生不死之间…

阅读全文 »

 


前几天,同事给我秀了一段代码,初看之时,没弄懂其作用。这并不意外,因为我对这段代码所用到的C语言异或^操作符不熟悉。一是在我的编程里这个操作符不常用,看其它代码也少见到;二是我编程的基础知识本身就不是很扎实。

同事秀的这段代码以前并未见过,当他说出这段代码的功能后,先是惊讶其精妙绝伦地实现,然再搜索其原理,发现其也不是想象的那么美好。在这里一一探究。 阅读全文 »

 


在上一篇文章中提到过,我已经不在Google工作了。我还没有想清楚应该去哪里—有两三个非常好的工作机会摆在我面前。因为在这段做决定时间里,我不再受雇于任何人,我想可以写一些专业性的东西,一些很有趣,但也会在同事和管理工作中导致关系紧张的东西。

 Google是一个非常优秀的公司。他们做出了很多令人称赞的东西—既是公司外部,人们可以看到的东西,也是公司内部。有一些在公司内部并不属于保密的事情,在外部并没有给予足够广泛的讨论。这就是我今天要说的。

让Google的程序如此优秀的一个最重要的事情看起来是非常的简单:代码审查。并不是只有Google做这个事情—代码审查已经被广泛的认可为一种非常好的做法,很多人都在这样做。但我还没有看到第二家这样大的公司能把这种事情运用的如此普遍。在Google,没有程序,任何产品、任何项目的程序代码,可以在没有经过有效的代码审查前提交到代码库里的。

所有人都要经过代码审查。并且很正规的:这种事情应该成为任何重要的软件开发工作中一个基本制度。并不单指产品程序——所有东西。它不需要很多的工作,但它的效果是巨大的。

从代码审查里能得到什么? 阅读全文 »

 


C/C++可变参数,“## __VA_ARGS__”宏的介绍和使用文章中,大致了解了在宏定义中如何实现可变的宏参数及其应用。这在自定义信息输出宏中特别有用。但不管如何,最终还是要由具体函数来实现可变参数,如printf函数,其原型大家都熟悉,如下:

int printf( const char *format, ... )

但是它是怎么实现可变参数的呢?又是如何获取这些可变参数的值呢?“…”省略号的应用规则又是什么?带着上述疑问,我们来解开这层面纱。 阅读全文 »

 


今天阅读代码的时候,在一个宏定义语句中,发现了个之前未曾见过的编译器预定义宏:“__VA_ARGS__”。当时,从代码语句中推测它代表宏参数:“…”(本文称之为省略号),依稀记得printf函数声明中有使用这个省略号,大概的意思是表示可变化的参数,但未深入了解。

在网上看了相关文章的介绍,主要涉及了C/C++函数中可变化参数的基础知识,并延伸到宏定义中的可变参数。借这一次的学习,算是对可变化参数有了比较详细的了解,尤其是解开了一直萦绕在头脑中printf函数声明中这个省略号的疑惑。

为更好了解C/C++中可变参数的知识,我从网上摘录了两篇文章,算是自己的一个总结。本篇主要是关于“## __VA_ARGS__”宏的介绍和使用。

阅读全文 »

 


C语言中volatile是什么意思,有什么作用呢?

volatile的中文意思—-易变的。在C语言中,volatile是一个类型修饰符(type specifier),volatile修饰的变量是说这个变量可能会被意想不到地改变,这样编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。

volatile变量主要用在以下几个方面:

(1)并行设备的硬件寄存器(如状态寄存器);
(2)一个中断服务子程序中会访问到的非自动变量;
(3)多线程应用中被几个任务共享的变量。

举个例子,如下: 阅读全文 »

 


C/C++程序一般都由程序员自己来控制内存的申请和释放,因此稍有不慎就容易出现内存泄漏,大家平时开发中都用什么方法和手段来检测、调试程序的内存泄漏呢?

1. 如何发现内存泄漏

ps -aux

2. 静态分析 阅读全文 »

© 2012 velep.com | reille blog | 管理| 粤ICP备15065318号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha

无觅相关文章插件,快速提升流量