正在阅读:聊聊我对c/c++的认识聊聊我对c/c++的认识

2004-04-09 10:38 出处:CSDN 作者:chenfei 责任编辑:sdq

  5、编程思想。编程思想工程的指导思想,好比伟大的毛泽东思想之于中国革命实践。c/c++的编程思想存在很大差异。c强调面向过程理论,c++强调面向对象理论。随着技术进步面向过程理论不能满足时代的需要,主要体现在大项目上,使用纯粹面向过程的方法进行开发,程序员往往陷入如何实现前人已经实现的功能,尤其设计gui部分,很难把精力集中于业务逻辑;而且代码纷乱,难以实施有效的维护和二次开发。面向对象理论解决了这一问题,但这并不意味着面向过程理论被淘汰了,任何面向对象的语言在具体功能模块实现时依然使用面向过程的三板斧:顺序、条件选择和循环。从这个角度看面向过程不但没有弱化,反而比以前更重要了。面向对象编程的核心目的就是复用,把经常做的一些工作封装好,让程序员把精力集中于业务逻辑。c++的编程思想中还有个重要特性:范型编程,比如stl。请注意,stl并不是面向对象的产物。
  其实能真正把面向过程的c做好的人也不是很多,能在c++方面造诣很深的人就更少了,至少我就不是:(。很多时候我们写的程序只能称为“基于对象”的。

  再说说与平台相关的知识。

  1、系统级的数据类型和api。先说数据类型,很古老的例子,16位机器和32位机器的int字长分别是两字节和四字节。再说数据类型,ms在标准数据类型的基础上又定义了N多数据类型,写过vc的人恐怕是深受其害。看那些linux跨操作系统平台的软件源代码也会发现无数的#ifdef....。系统级的api一般都是c的接口,win32有sdk、directX等,典型函数有winmain()、SendMessage();linux的glibc,典型函数有setuid()、tmpfile()。

  2、非通用平台的数据类型和api。还有一些特定的软硬件环境也提供特定的数据类型和api,比如加密卡、数据传输卡提供的驱动;ibm的mq(mq就提供c和c++两套接口api)。
 
  3、不同的类库。用c++工作在不同的平台下要熟悉相关类库,比如ms的mfc,跨平台的通用库有boost,我还曾经用过一个加/解密算法库crypto++(crypto++也提供c和c++两套接口api)。学会重用前人的代码也是一门功夫。
开发总是在特定平台下进行的,所以熟悉至少一个系统级的api或者类库是必须的。根据工作中不同的侧重和项目的要求还要熟悉一些特定的库。比如我原来经常用到一些加解密算法,我就必须对crypto++非常熟悉。另外,熟悉和使用一些公共用途的库比如boost,对开发工作有事半功倍的效果。

  4、了解程序编译、连接的过程。库的静态链接、动态链接以及库的动态载入和卸载。项目做大了,自然不能一个可执行文件就把全部问题都解决了。ms平台下的程序员请参考msdn,linux程序员可以参考《advanced-linux-programming》

察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:
键盘也能翻页,试试“← →”键

关注我们

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