老版本的 C 真不好用

26 views
Skip to first unread message

redsea

unread,
Dec 14, 2007, 1:43:25 AM12/14/07
to TopLanguage
前一段时间调试程序主要用log, 现在一个程序, 设计到好些数据结构, 还是需要一个调试器会好一些.

由于这个数据结构程序windows 下面也可以调试, 于是找出自己做的 vc6 安装版本来, 执行setup 就将 vc6, sp6,
visual assist 等一起装了.

然后开始编译 gcc 下面已经编译过的代码.

inline 不支持 ? 好办 #define inline __inline
bzero 没有? 自己写一个 inline 的, 转到 memset
vsnprintf 没有 ? 有 _vnsprintf 的, 也没有问题.

重复地解决了这些弄过好多次的问题, 突然发现一个严重的问题, 最近写 C 程序, 都是用 gcc 的, 变量是可以随处定义的, 换到这个
vc6, 报无数的错误, 烦啊.

慢慢改吧, 修改了几个函数, 之后, 越看代码越丑, 无法忍受了, 怒了.

停工, 下载 Intel C++ 10, 准备用这个支持 C99 规范的编译器了, 告别老态龙钟的 VC6 自带编译器.

....
....
....
下载好慢啊 :(

katkat lim

unread,
Dec 14, 2007, 1:47:24 AM12/14/07
to pon...@googlegroups.com
为啥不用GCC呢。。。。

red...@gmail.com

unread,
Dec 14, 2007, 1:55:15 AM12/14/07
to pon...@googlegroups.com
katkat lim 写道:
> 为啥不用GCC呢。。。。
>
用啊, 但是调试器对我来说, 是个问题.

我们摆在办公室的7台 linux 机器都是没有装 Xwin 的, windows 上的 xwin 实现
又没有几个好用的.

直接用 gdb, 嗯, 我的记忆力太差, gdb 有太多要记得命令, 帮助系统又差, 还是
算了.

所以, 如果程序要调试, 要么我就reboot 我的机器, 进入 linux/kde, 要么我就
用 windows 调试器去调试那些没有平台问题的代码.


katkat lim

unread,
Dec 14, 2007, 2:01:03 AM12/14/07
to pon...@googlegroups.com
如果你不介意,并且你想在windows下调试,并且使用的是纯C的话,可以尝试一下Dev-Cpp,Lcc-win32,pelles c这三个东东,都是IDE,内置C99支持的编译器。当然不能指望他们能开发出什么大玩意来,小玩意折腾一下还可以。。。

pi1ot

unread,
Dec 14, 2007, 2:04:46 AM12/14/07
to TopLanguage
写了这么多年代码还真没用过几次gdb,log(...) 走天下,hiahia.

red...@gmail.com

unread,
Dec 14, 2007, 2:17:33 AM12/14/07
to pon...@googlegroups.com
log 的问题是, 调试复杂的数据结构的时候, 有错不能立即分析, 而必须猜测大概
是怎么错, 然后再加 log, 调试周期比较长.

我现在处理的代码是, 给一堆要查找的字符串, 然后编译成内存中的树结构(其实
是状态机啦), 之后碰到输入, 就沿着这个状态机走, 就可以查出输入是否匹配要
查找的字符串了. 这个做法是多关键字查找的标准做法, 这种做法不用计算hash
值, 不用输入和候选字串逐个对比字符, 所有字符处理一次即可, 正则表达式中的
DFA 就是类似的东西.

本来想用 grep 里面的代码的, 结果发现它功能太多, 从而考虑得太多, 因此速度
不够快. 我的代码的速度大致是它的三倍 --> 我还没有开始数据结构级别的优化,
反正可以满足目前的要求了, 优化的事情以后再说了.

我的数据结构还用了最简单的, 如果用更复杂的, 我会更依赖调试器而不是 log 了.

pi1ot 写道:
> 写了这么多年代码还真没用过几次gdb,log(...) 走天下,hiahia.
>

NZzi

unread,
Dec 14, 2007, 2:39:36 AM12/14/07
to pon...@googlegroups.com
pi1ot wrote:
> 写了这么多年代码还真没用过几次gdb,log(...) 走天下,hiahia.
>
> On 12月14日, 下午2时55分, red...@gmail.com wrote:
>> katkat lim 写道:> 为啥不用GCC呢。。。。
>>
>> 用啊, 但是调试器对我来说, 是个问题.

呵呵,以前我不能理解linus为什么反对加入kernel的调试器,kdb,
kgdb,whatever...

但,前一段时间,我修改anaconda(RH系Linux的系统安装程序)时,
鉴于系统安装程序的特殊性,几乎很难使用调试器,我才发现不使用
调试器是有一定道理的。

这样会迫使你对程序进行全局思考,而不是通过调试器去找问题所在,
这也是linus曾经表述过的观点,他好像说过,通过调试器修改的
bug,很多情况压根就不是fix。

Googol Lee

unread,
Dec 14, 2007, 2:39:49 AM12/14/07
to pon...@googlegroups.com
如果仅仅是调试,可以试试code::block+mingw,整体还是很好用的。

在 07-12-14,red...@gmail.com<red...@gmail.com> 写道:


--
新的理论从少数人的主张到一统天下,并不是因为这个理论说服了别人抛弃旧观点,而是因为一代人的逝去。

My blog: http://googollee.blog.163.com

pi1ot

unread,
Dec 14, 2007, 2:41:34 AM12/14/07
to TopLanguage
到了调试的时候,我更习惯让代码跑在脑子里,log只是一个印证的手段,非常地不习惯在调试环境下找问题。

Googol Lee

unread,
Dec 14, 2007, 3:16:17 AM12/14/07
to pon...@googlegroups.com
虽然理论上是在脑子里跑,但是人肉编译器毕竟还是可能出错的……

我现在也很少用调试器。感觉调试器对单独的小程序比较好用,特别是验证算法和结构的时候。一旦涉及到模块调用,时序调用的时候,基本上就是靠log。

在 07-12-14,pi1ot<pilo...@gmail.com> 写道:

pi1ot

unread,
Dec 14, 2007, 4:25:59 AM12/14/07
to TopLanguage
人肉编译,人肉运行,人肉优化!最后人肉崩溃。

On 12月14日, 下午4时16分, "Googol Lee" <googol...@gmail.com> wrote:
> 虽然理论上是在脑子里跑,但是人肉编译器毕竟还是可能出错的......
>
> 我现在也很少用调试器。感觉调试器对单独的小程序比较好用,特别是验证算法和结构的时候。一旦涉及到模块调用,时序调用的时候,基本上就是靠log。
>
> 在 07-12-14,pi1ot<pilot...@gmail.com> 写道:

Jian Wang

unread,
Dec 14, 2007, 4:39:33 AM12/14/07
to pon...@googlegroups.com
code::block+mingw我一直在用,编码还不错。
但是说起调试的便利性话,说实在的VC是遥遥领先。
MS在易用性方面做的确实是没话说了。VC6的调试器,这么古老的东西超过了绝大多数今天的C++IDE。

在 07-12-14,Googol Lee<goog...@gmail.com> 写道:

red...@gmail.com

unread,
Dec 14, 2007, 4:44:54 AM12/14/07
to pon...@googlegroups.com
恩, 有空看看这几个东西.

主要还是习惯问题, VC6 + Visual assistant 是以前用惯了的, 习惯的力量是强大的 :)

话说回来, 微软以为自己无所不能, 出一个 vista 去挑战用户习惯, 现在也挺灰头土脸的 ---- 之前 xp 受欢迎, 是因为 98 不稳定, 98 的用户当年似乎挺不接受 windows 2000, 出来一个 xp, 2000 和 98 的用户都能够接受, 就这样, 还是花了几年才将98 和 2000 取代下来, 现在出个 vista 改动如此之大, 除了什么新螃蟹都喜欢吃的用户, 其他用户肯定是觉得挺恼火的.

咱们这个 group 里面, C++ 用习惯了的人, 要接受 java 和 C# 似乎也很多别扭, 对 D 没有这么多别扭, 其实也是因为 D 其实继承了 C++ 太多东西, 本质还是很接近的.

katkat lim 写道:

莫华枫

unread,
Dec 14, 2007, 6:32:38 AM12/14/07
to pon...@googlegroups.com
vc什么都好,就是这出错信息是驴唇不对马嘴。
--
反者道之动,弱者道之用
m...@seaskysh.com
longsh...@gmail.com
http://blog.csdn.net/longshanks/

Googol Lee

unread,
Dec 14, 2007, 7:39:51 AM12/14/07
to pon...@googlegroups.com
其实还好吧,除了调试stl时实在郁闷外,貌似vc6该有的都有了。vc6对stl也没特别支持吧?

在 07-12-14,Jian Wang<oxygen.j...@gmail.com> 写道:

莫华枫

unread,
Dec 14, 2007, 8:20:27 AM12/14/07
to pon...@googlegroups.com
当然vc8是好多了。但是遇到复杂的情形,比如mpl,一切都晕头转向。这也罢了,mpl原本是难缠的东西,其他编译器也没好到哪里去。但是我今天重载<<操作符,返回值应该是ostream&,我漏掉了&,结果给出的错误指向<ostream>,说basic_ostream<>::basic_ostream()不能访问...的private成员。最后我是误打误撞猜到这个原因的。这也太...

red...@gmail.com

unread,
Dec 14, 2007, 8:39:34 AM12/14/07
to pon...@googlegroups.com
莫华枫 写道:
> 当然vc8是好多了。但是遇到复杂的情形,比如mpl,一切都晕头转向。这也罢
> 了,mpl原本是难缠的东西,其他编译器也没好到哪里去。但是我今天重载<<操

> 作符,返回值应该是ostream&,我漏掉了&,结果给出的错误指向< ostream>,
> 说basic_ostream<>::basic_ostream()不能访问...的private成员。最后我是误
> 打误撞猜到这个原因的。这也太...
所以无论是用 C++ 还是用 D, 我都不太敢用 template 嵌套使用太深, 否则出了
错之后, 太痛苦了.

lijie

unread,
Dec 14, 2007, 8:50:11 AM12/14/07
to pon...@googlegroups.com
据一个搞嵌入的朋友说,c51连enum都没有,要自己模拟。。

lijie

unread,
Dec 14, 2007, 8:50:27 AM12/14/07
to pon...@googlegroups.com
说错了,是union

Googol Lee

unread,
Dec 14, 2007, 8:59:11 AM12/14/07
to pon...@googlegroups.com
说到c51,当年学校玩这个的时候,单步跟踪还能跟到注释里去呢!那叫一个汗……

在 07-12-14,lijie<cpu...@gmail.com> 写道:

red...@gmail.com

unread,
Dec 14, 2007, 9:01:55 AM12/14/07
to pon...@googlegroups.com
不对啊, 连 C++ 编译器都有的:

http://www.maxim-ic.com.cn/products/microcontrollers/8051/development_tools/


lijie 写道:
> 说错了,是union
>

Googol Lee

unread,
Dec 14, 2007, 9:05:36 AM12/14/07
to pon...@googlegroups.com
呵呵,不同公司的51编译器完全不一样的,虽然都叫51……

我当年能把程序跑到注释里的,就是国产青云系列的,开发环境也是国产的。

2007/12/14, red...@gmail.com <red...@gmail.com>:

lijie

unread,
Dec 14, 2007, 9:17:34 AM12/14/07
to pon...@googlegroups.com
呵呵,同一种编译器还有版本问题,高版本的不一定能编译链接低版本的库,很多公司是多年前购买的一个"OS",编译器和库都打包在一块的,一直在上面开发。这个我外行,听说而已,觉得挺痛苦。

Jian Wang

unread,
Dec 14, 2007, 9:27:22 AM12/14/07
to pon...@googlegroups.com
从使用习惯来看,Java,C#最不爽的就是什么都要塞进类里面。明明我就想要一普通函数,还得硬找个类作为static函数塞进去。
取名字就很痛苦,package名,函数名,还得多取一个类名。这种硬生生多出来的东西起名字最难了。

在 07-12-14,red...@gmail.com<red...@gmail.com> 写道:
>

red...@gmail.com

unread,
Dec 14, 2007, 10:24:30 AM12/14/07
to pon...@googlegroups.com
他们认为世界上只该有 OO 一样武器 :)

而且我觉得奇怪的是, 过程式语言的使用者, 从来没有抱怨过他们的语言和关系数
据库的集合操作语言之间有什么难配合的东西, 但是各种 OO 语言的用户, 多少年
来都觉得关系数据库使得他们非常不爽, ORM 层也是, 怎么也搞不顺当.

看来 OO 和恐龙差不多, 越适应某种环境, 就越不适应另外一种环境. 过程式语言
就和小强差不多, 当不了霸主, 但是到什么地方都死不了.


Jian Wang 写道:

red...@gmail.com

unread,
Dec 14, 2007, 11:02:31 AM12/14/07
to pon...@googlegroups.com
你这个说法有道理.

并且, 如果只是用调试器调试程序, 不少的人只是简单给几个样例, 单步过了就算了.

没有调试器的时候, 看log, 如果是碰到相对复杂的bug, 那必须对自己的程序的整
体逻辑很清楚, 才能从这些 log 分析出问题的原因.

"通过调试器修改的 bug 不是 fix" 是不是指那种不够负责任, 没有找出问题的真
正根源, 而是看到某个地方修改一下(补丁一下), 就可以正常, 然后就不追究的做法 ?

NZzi 写道:

Eli

unread,
Dec 14, 2007, 5:52:16 PM12/14/07
to TopLanguage
嗯确实是, 凡是要我取名的地方, 我TM都得打开金山词霸... -___-

Eli

unread,
Dec 14, 2007, 6:00:37 PM12/14/07
to TopLanguage
我觉得Anders或者Gosling中至少前者倒不见得是这么想的. 关键是什么炒的热, 他们就更重视什么, 商业化的味道太浓了.

OO最操蛋的地方在于, 他非要钳制你看问题的方式, 而且还没法就什么情况下应该怎么看待问题给出一个真正的指导, 所以一切就看程序员自己造化
了.

更可怕的是声音太响, 一天到晚的噪声, 什么OO最符合人的思维. 我看居委会老大妈都会列表, 一个干了3年的程序员, 未必能找出合适的对象.
难道说世界上90%的程序员不具有人的思维? 然后一大堆OO指导书籍告诉你怎么想, 这就好比满世界都是教我怎么吃饭的书, 并号称该方法是我最容易
接受的吃饭方法, 我满怀欣喜的打开这些书, 结果....

Eli

unread,
Dec 14, 2007, 6:02:00 PM12/14/07
to TopLanguage
"嗯确实是, 凡是要我取名的地方, 我TM都得打开金山词霸... -___- "

倒不是说我想不出简单的单词, 而是简单的单词, 全让MS或者框架作者给占用了...., 哭啊

莫华枫

unread,
Dec 14, 2007, 6:14:52 PM12/14/07
to pon...@googlegroups.com
oo的热门还是在于商业。既然java/c#都是纯oo的,那么自然oo是最好的。
从编程角度而言,各种范式比较应当有个度量。度量应当包括构建是否方便、扩展性如何、容错性如何,最后才是是否容易学习和接受。
不过,诸位,我们在深入讨论这个问题之前,还是先给oo下个定义吧。:)

莫华枫

unread,
Dec 14, 2007, 6:20:22 PM12/14/07
to pon...@googlegroups.com
算是想明白了,这是std给咱设的套。stream对象是不能创建的,所以漏掉&就意味着创建临时对象,所以就无法通过了。但是这种错误难道就不能用更人性化的方式给出吗?我又想到concept了。:)

王宁

unread,
Dec 14, 2007, 6:48:49 PM12/14/07
to pon...@googlegroups.com
gdb记住十个左右常用的命令效率就比log高多了。不过有些时候还是log来得快。

redsea

unread,
Dec 14, 2007, 7:54:26 PM12/14/07
to TopLanguage
用 concept 来限制这样和语义有关的东西? 能够直观地表达吗?

On 12月15日, 上午7时20分, "莫华枫" <longshank...@gmail.com> wrote:
> 算是想明白了,这是std给咱设的套。stream对象是不能创建的,所以漏掉&就意味着创建临时对象,所以就无法通过了。但是这种错误难道就不能用更人性化的-方式给出吗?我又想到concept了。:)
>

redsea

unread,
Dec 14, 2007, 8:05:12 PM12/14/07
to TopLanguage
先不管精确定义, 先聊下应用场景.

我觉得 OB/OO 在封装有内部状态的实体 (OO 里面叫做对象)的地方是比较好用的.

如果不存在这样的实体 ---- 例如, 某个实体没有内部状态, 相关的几个功能, 什么时候调用哪个都没有问题; 或者做批量数据处理的时候,
整个数据库视做一个无内部状态的实体(至少当前transaction 内可以不必管其内部状态, 状态冲突 rdbms 会监视不同的
transaction 来解决), 用集合操作语言来处理 ---- 这些使用场景, OB/OO 是没有什么效果的.

C 里面的 FILE 很明显是一个有内部状态的东西, 需要 open/close, 有一个当前 offset, 可以 seek, 如果不用目
前的 OB 方法封装, 几个内部状态值全部暴露出来, 就很容易出错.

而如果 将 memset 这样的函数, 一定要归附到某个 "对象" 中, 则纯粹是操蛋.

red...@gmail.com

unread,
Dec 14, 2007, 8:46:38 PM12/14/07
to pon...@googlegroups.com
对我来说, 要记住一件东西, 要么这个东西和我已经掌握的其他知识有许多逻辑的
联系, 要么是这个东西我天天都在用.
gdb 的命令和这两者都不符合, 所以很难记.

vi 的正则, 替换等命令, 我和之前的知识关系很大, 所以我记住了, 但是它的垂
直块选择之类的命令, 就记不住. 虽然这个功能,也很常用, 搞到现在, vi 只是我
程序写好了, 最后简单修改的时候才用, 平时用 ultraedit --> 不是说ultraedit
的块选择命令更有逻辑好记, 而是一选 column 菜单就可以看到.

王宁 写道:
> gdb记住十个左右常用的命令效率就比log高多了。不过有些时候还是log来得快。

莫华枫

unread,
Dec 14, 2007, 8:47:52 PM12/14/07
to pon...@googlegroups.com
可以:require !Constructable<T>。这样就限制了T是无法construct的。拿这样的类型做值返回,自然会引发指向该constraint的错误。

pongba

unread,
Dec 14, 2007, 9:31:22 PM12/14/07
to pon...@googlegroups.com
听说OO的真正作用也就是信息隐藏;)
--
刘未鹏(pongba)|C++的罗浮宫
http://blog.csdn.net/pongba
TopLanguage
http://groups.google.com/group/pongba

Eli

unread,
Dec 14, 2007, 9:47:38 PM12/14/07
to TopLanguage
同感, 最重要的用处是别人不让你干什么, 你不让别人干什么.

但是一到某一门语言内可就不见得了, 人家设计者就限定了你要这样多态, 那样组合, 自然好似没有了OO不行的样子.



On Dec 15, 10:31 am, pongba <pon...@gmail.com> wrote:
> 听说OO的真正作用也就是信息隐藏;)
>
> On Dec 15, 2007 7:14 AM, 莫华枫 <longshank...@gmail.com> wrote:
>
>
>
> > oo的热门还是在于商业。既然java/c#都是纯oo的,那么自然oo是最好的。
> > 从编程角度而言,各种范式比较应当有个度量。度量应当包括构建是否方便、扩展性如何、容错性如何,最后才是是否容易学习和接受。
> > 不过,诸位,我们在深入讨论这个问题之前,还是先给oo下个定义吧。:)
>
> > On Dec 15, 2007 7:00 AM, Eli < Eli...@gmail.com> wrote:
>
> > > 我觉得Anders或者Gosling中至少前者倒不见得是这么想的. 关键是什么炒的热, 他们就更重视什么, 商业化的味道太浓了.
>
> > > OO最操蛋的地方在于, 他非要钳制你看问题的方式, 而且还没法就什么情况下应该怎么看待问题给出一个真正的指导, 所以一切就看程序员自己造化
> > > 了.
>
> > > 更可怕的是声音太响, 一天到晚的噪声, 什么OO最符合人的思维. 我看居委会老大妈都会列表, 一个干了3年的程序员, 未必能找出合适的对象.
> > > 难道说世界上90%的程序员不具有人的思维? 然后一大堆OO指导书籍告诉你怎么想, 这就好比满世界都是教我怎么吃饭的书, 并号称该方法是我最容易
> > > 接受的吃饭方法, 我满怀欣喜的打开这些书, 结果....
>
> > > On Dec 14, 11:24 pm, red...@gmail.com wrote:
> > > > 他们认为世界上只该有 OO 一样武器 :)
>
> > > > 而且我觉得奇怪的是, 过程式语言的使用者, 从来没有抱怨过他们的语言和关系数
> > > > 据库的集合操作语言之间有什么难配合的东西, 但是各种 OO 语言的用户, 多少年
> > > > 来都觉得关系数据库使得他们非常不爽, ORM 层也是, 怎么也搞不顺当.
>
> > > > 看来 OO 和恐龙差不多, 越适应某种环境, 就越不适应另外一种环境. 过程式语言
> > > > 就和小强差不多, 当不了霸主, 但是到什么地方都死不了.
>
> > > > Jian Wang 写道:
>
> > > > > 从使用习惯来看,Java,C#最不爽的就是什么都要塞进类里面。明明我就想要一普通函数,还得硬找个类作为static函数塞进去。
> > > > > 取名字就很痛苦,package名,函数名,还得多取一个类名。这种硬生生多出来的东西起名字最难了。
>
> > --
> > 反者道之动,弱者道之用
> > m...@seaskysh.com
> > longshank...@gmail.com
> >http://blog.csdn.net/longshanks/
>
> --
> 刘未鹏(pongba)|C++的罗浮宫http://blog.csdn.net/pongba
> TopLanguagehttp://groups.google.com/group/pongba

NZzi

unread,
Dec 14, 2007, 11:15:20 PM12/14/07
to pon...@googlegroups.com
red...@gmail.com wrote:
> 你这个说法有道理.
>
> 并且, 如果只是用调试器调试程序, 不少的人只是简单给几个样例, 单步过了就算了.
>
> 没有调试器的时候, 看log, 如果是碰到相对复杂的bug, 那必须对自己的程序的整
> 体逻辑很清楚, 才能从这些 log 分析出问题的原因.
>
> "通过调试器修改的 bug 不是 fix" 是不是指那种不够负责任, 没有找出问题的真
> 正根源, 而是看到某个地方修改一下(补丁一下), 就可以正常, 然后就不追究的做法 ?

恩,差不多是这个意思,我上次写的话有些不通顺,不好意思。

linus用咱们的话说,其实挺象一个愤青,但是一个很牛的愤青,是一个大guru,
他说的很多话挺“激进”的,但大多数是话糙理不糙。

正象你所说,在一些情况下,调试器是有用的,现在andrew不也把调试器加到他的
tree里
了吗?但是,在解决bug方面,调试器不应作为主要手段。

Atry

unread,
Dec 14, 2007, 11:41:19 PM12/14/07
to pon...@googlegroups.com
inline 关键字现在还有用吗?C 的 static 函数跟 inline 也没区别。

在07-12-14,redsea <red...@gmail.com> 写道:

red...@gmail.com

unread,
Dec 14, 2007, 11:55:45 PM12/14/07
to pon...@googlegroups.com
一个程序, 原来要运行 25ms, 后来我在一个体积不小, 但是只有一个调用点的函
数前面加上 inline static 之后, 就只需要 16ms 就可以跑完, 我也没有去检查,
只加 static 是否有这个效果.


Atry 写道:

up duan

unread,
Dec 17, 2007, 3:20:21 AM12/17/07
to pon...@googlegroups.com
OO不仅仅是信息隐藏,ADT就能做到这一点。关于OO是什么以及为什么,还是看看Bertrand Meyer的Object-Oriented
Software Construction吧。

Eli

unread,
Dec 17, 2007, 5:17:03 AM12/17/07
to TopLanguage
呵呵, 我这里不是说是什么或为什么, 而是普遍的应用场景下, 强制的OO是否有必要. 我自己在现在的环境下也很难摆脱OO, 其思维方式也逐渐变
为自然的了. 但是这种自然也许是我被感染了也不一定. 我的想法是, 我越习惯什么, 我越应该对其进行反思和否定. 哪儿可以用OO不是见很困难的
事, 关键是哪儿不用OO, 对于每一个习惯于OO的人, 恐怕都是个课题. 以我现在的习惯, 在JS这样的语言内就能比较好的选择OO或者不选
择, 可是在C#之类的语言里, OO就变成情不自禁了, 这个我觉得很不妙. 所以关于是什么或为什么这样的问题, 我现在更为敏感的是, 那些反面
的意见是怎么说的. 现在似乎只剩下信息隐藏没有被反驳过了, 但是就像你说的, 如果ADT就能做到这一点, 那么OO还剩下什么呢?

关于看书的问题, 我个人以为, 我不会再看任何一本讲解OO的书, 虽然显然我的阅读覆盖面差的还远. 人要是永远让自己的脑子去跟随那些所谓大师也
好大嘴也好的足迹, 还有多少精力可以留给自己独特性的东西呢? 这些大师和大嘴们, 现在脑袋上套着光环, 似乎每一个都是重量级的, 完备的;想当
年也必然没有全面覆盖他们当时流行的思想和著作, 每个人都是1年365天, 一天24小时, 恐怕之所以成为大师, 除了脑袋比我这种普通人完善
些, 留给自己的时间也是很充裕的.

现在阅读对我来说, 大多时候就是词汇的掌握更多一些, 因为共同的词汇有助于交流. 时间紧迫啊...

王磊

unread,
Dec 17, 2007, 7:36:34 PM12/17/07
to pon...@googlegroups.com
我做WINCE的时候evc几乎帮不上什么忙去调适。不知道自己技术差还是太懒了。
那破玩意,一来个断点什么的就可以死给你看,想调适也行,就得忍上1年半载的。
结果就无限log。所以时间久了对调适也就麻木了,不管什么log先。
 
另外VC我感觉是很不错的IDE了,也许是因为习惯。
当然其中的出错信息只能参考,通常都是不相关的东西出了一大堆。

 
在07-12-15,red...@gmail.com <red...@gmail.com> 写道:

王磊

unread,
Dec 17, 2007, 7:46:21 PM12/17/07
to pon...@googlegroups.com
OO听了这么多年面向对象云云。。。
 
可是写出来的代码无非是多了一些可访问不可访问,私有公有,最后变成结构化的东西给你看。
 
这么多年我的感觉OO被过分神化了。即时尤其优势也不至于弄得什么都得OO不可,最后一切都是对象的java还不是写出了几个不是对象的数据类型?
 
想写个简单方法做点什么非得职能划分给一个类。。。

 
在07-12-17,Eli <Eli...@gmail.com> 写道:

李扬

unread,
Dec 23, 2007, 8:50:34 PM12/23/07
to pon...@googlegroups.com
oo,并不一定是必须的。但是有时候有oo还是比较惬意的。
linux们也在用c写oo。。但不一定非要把memset也oo了。

 
在07-12-18,王磊 <wangle...@gmail.com> 写道:
Reply all
Reply to author
Forward
0 new messages