正在阅读:《编程高手箴言》读后(4)《编程高手箴言》读后(4)

2004-04-08 14:39 出处:CSDN 作者:seacloud 责任编辑:sdq

  如果将C与C++相比较,C++就会为了某个问题会绕一大圈,所以代码会比较大,并且里面有一些没用的代码。
=========================================
  可惜《箴言》没有给个例子说明C++是怎么绕一个大圈子了。C++的对象机制应该是对问题的一种更高级别的抽象。作为一个一般的规律,计算机里面的每一次向上的抽象都会使的对人的界面友好一点,而这是要付出空间和时间的代价的。C++的对象显然从语义上要比C的结构丰富的多,因此C的结构可以不需要那些诸如构造函数,析构函数之类的东西,而C++在很多时候就需要它们了。如果以没用到就说它们没用,我只能表示遗憾了。这只能说明你还是用C的眼光看C++,而不是用C++的眼光看C++。

  比如用结构的指针的处理写出来的C代码就会很复杂,因为里面有很多结构的指针,指来指去。
=========================================
  如果你指针的概念清楚,一般情况下不会觉得指针有什么复杂的。只是一个训练不够的程序员可能会在不经意的情况下犯错误,而有时这种错误很难查罢了。很多时候,指针有助于表达问题,比如二叉树的实现,我就觉得一些不支持指针的语言,比如Basic里的实现就不太清楚,至少我觉得这样。我想,如果C里面没有指针的话,估计C早就消亡了 ;-)

  C++主要解决的是一个重入的问题,重入也是对象化的问题... ...早期的操作系统就是用结构来做的,否则就没有办法解决文件的问题。
=========================================
  不懂。 不用结构就不能解决文件问题?什么是结构?结构还不是一种对数据组织方式的一种抽象?只要CPU的指令支持间接寻址,实现结构及其简单。再说,一堆数据放在那里,你是否把他看成是结构完全是你自己的事。

  然后在代码里真正链接的时候,只包含DATA和TEXT区,而BSS区域是程序装进来的时候给它分配空间的。
=========================================
  大家编译下面这两个程序,看看生成的可执行程序的大小就明白了。

  程序一:
  #include <stdio.h>
  long array[10 *1024 * 1024];
  int main()
  {
      printf("Hello World!\n");
  }

察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品