PAUL LEE,用户名leep,更多时候被称为Hoppy,享有当地编程问题专家的声誉。我需要帮助了,就走到Hoppy的桌子前,问他是否有空帮我看一眼代码。
“当然”,Hoppy说,“搬个凳子过来”。
我小心翼翼地(搬),不至于弄到他身后那堆成金字塔的空可乐瓶。
“什么代码”?
“文件里的一个函数”,我说。
“好,让我们看一下这个函数”。Hoppy把手中的K&R副本放到一边,然后在我前面噼里啪啦滑响键盘。
“IDE在哪?”显然,Hoppy不用IDE,只是某种我不会操作的编辑器。他抓起键盘,一番快捷键后,我们打开了一个文件——很大的文件——然后我们找到了那个函数——很大的函数。他翻页到我想要问的条件判断代码块那里。
“如果x为假,这个分支实际上会做什么?”我问,“它肯定出错了”。
我整个早上都在尝试找到一种方法让x强制为假,但它在一个大工程下的大文件下的大函数里,重新编译运行的循环试验让我失望。难道像Hoppy这样的专家也不能告诉我答案吗?
Hoppy承认他自己也不确定原因。但令我震惊的是,他没有立刻拿回那本K&R。而是把那个代码块复制到新的编辑器里,重新缩进它,封装到一个函数里。很快,他写好一个死循环的main函数,提示用户输入值,传到那个函数里,打印结果。他把这段代码保存为tryit.c。所有这些步骤我自己都会做,只是或许没那么快罢了。但他的下一步操作很棒,对我而言也很陌生:
$ cc tryit.c && ./a.out
看!他实际的编程操作,几分钟前还在构思,现在已经能跑了。我们尝试了集中值并验证了我的想法(有些问题上我是对的!)然后他又交叉检查了K&R里相关的章节。我感谢了Hoppy并离开,再次小心翼翼不要碰到他的可乐金字塔。
回到我的座位,我关掉了IDE。我已经习惯了在用一个大型工程去做一个大型产品,我一开始便认为这是我应该做的。然而通用计算机也可以完成很小的任务呀。我打开了一个文本编辑器,并敲下:
1 |
|