Web Analytics

C语言也重构

*所谓的重构是这样的一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。重构是一种有纪律的、经过训练的、有条不紊的程序整理方法,可以将整理过程中不小心引入错误的机率降到最低,本质上说,重构就是\[在代码写好之后改进它的设计]。*– Martin Fowler *重构,一种改善代码’体质’的方法’。* — 侯捷 *重构是上进程序员每天的进行式。是一项工程而不是靠着天份挥洒的...

March 28, 2006 · 9 min · Tony Bai

当数组作参数时

C语言中的数组和指针总保持着'千丝万缕'的联系,这里仅针对数组作为函数实参时的情况做些说明^\_^。 C语言中的数组可分为一维数组和多维数组两类,而多维数组中又以二维数组最为常见。这里也仅针对这一维数组和二维数组作简要说明。 看过'高质量C++编程指南'的人可能都知道书中有这样一句'注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针',这句话针对一维数组固然是正确的,但是对于多维数组...

March 27, 2006 · 2 min · Tony Bai

'right-left'规则再举例

闲暇时翻阅'C专家编程',再次看到对C语言变量声明的理解一节,遂想起我曾经写过的那篇利用'right-left'规则分析复杂的C语言变量声明的文章'C复杂声明解析',发现其中的例子的对比性不够强,所以决定再用一篇短文来再阐述。 至于'right-left'规则这里就不再重述了。这里想重点分析一组对比'鲜明'的例子:分析int \*p\[20]和int (\*p)\[20]。 闲话就不多说了,我们看...

March 26, 2006 · 2 min · Tony Bai

理解C复杂声明之'优先级规则'

第一次看《C专家编程》一书时关于其采用的'优先级规则'分析C复杂声明时看得很糊涂,在理解'right-left'规则分析C复杂声明后,再回过头来看'优先级规则',居然发现它们的异曲同工之妙^\_^。 其实'优先级规则'的分析过程极其类似'right-left'规则,下面首先摘录'优先级规则'的'口诀',然后再'一招一式'的细致讲解^\_^。 \[优先级规则'口诀'] A 声明从它的名字开始读取,然...

March 26, 2006 · 5 min · Tony Bai

如果让我面试C程序员,我会问

我有这样的一个习惯,就是看书的时候总是喜欢自问自答,这不周末第二次温习’C专家编程’一书,便有了如下若干问题,明为提问,实则是在提醒自己好好想想这些问题,如果大家有兴趣,也可以给出你自己的答案,如果觉得琢磨不透,可翻看’C专家编程’一书,或多敲几次键盘,自己试上一把! 1、你认为C语言\[注1]是一门成功的语言吗?如果认为是,那么你认为它成功的关键在什么地方?或者说它的魅力所在? 2、C语言中的函...

March 26, 2006 · 3 min · Tony Bai