自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陈皓专栏 【空谷幽兰,心如皓月】

芝兰生于深谷,不以无人而不芳;君子修道立德,不为困穷而改节。

  • 博客(141)
  • 收藏
  • 关注

原创 用GDB调试程序(七)

改变程序的执行———————    一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。        一、修改变量值    修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的print命令即可完成。如:

2003-07-12 16:42:00 44181 20

原创 用GDB调试程序(四)

查看栈信息—————当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令:    backtrace     bt         打印当前的函数调用栈的所有信息。如:               

2003-07-09 08:30:00 53612 4

原创 用GDB调试程序(五)

 查看运行时数据———————        在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是:        print     print /         是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),是输出的格式,比如,如果要把表达式按16进制的格式输出,那么

2003-07-09 08:30:00 68299 5

原创 用GDB调试程序(二)

GDB的命令概貌———————启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示:    /home/hchen> gdb    GNU gdb 5.1.1    Copyright 2002 Free Software Foundation, Inc.    GDB is free software, cov

2003-07-03 00:20:00 122006 15

原创 用GDB调试程序(一)

用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:    1、启动你的程序

2003-07-02 23:13:00 654421 82

原创 《自适应软件开发》—从奴隶主到领袖< 1 序言 >

————几年前,当我确定我的发展方向是软件开发时,给自己订下的三步曲是:软件编程、软件设计、软件工程。随着对既定目标的越来越近的时候,我却出现了一种困扰我的忧虑。记得两年前开始的一个正规的软件项目,我是一个程序员,项目就像一颗种子一样渐渐得长成了一棵大树,按道理来说,看到如此成果应该会有一些成就或是自豪。可是我却感到了一种忧虑,人在项目当中究竟是什么呢?现代科学的软件管理让软件开发变成“软

2003-06-09 07:56:00 9746

原创 《自适应软件开发》—从奴隶主到领袖< 2 世界观的重生 >

————————这本书叫《自适应软件开发》,封面上写着“尤其适用于紧张、高度竞争和经常变更的软件项目”,其实这是片面的,这本书所表达的思想应该是“适应于人类的一切活动,大则包括社会制度,小则包含个人发展”。生物进化被达尔文解释为“适者生存”(survival of fittest),要是达尔文错了呢?现在许多人更相信的是“适者达到”(arrival of fittest),也就是说,生物的

2003-06-09 07:56:00 6903

原创 《自适应软件开发》—从奴隶主到领袖< 3 混乱边缘的繁荣 >

—————————书中是以“混沌”作为术语,我觉得有些拗口,所以改成“混乱”。在现在的软件开发中,软件工程协会所制定的能力成熟度模型(CMM)被誉为圣杯,并在当今的世界中大行其道,随着软件开发的过程的细化程度而分成五级。愈高的等级,过程愈细化。为的就是追求一种稳定,一种可控的效果。并也取得了一种快速开发的结果。但 CMM / ISO9000 / BRP 这种被书中所描述为“里程碑”式的

2003-06-09 07:56:00 4462 1

原创 《自适应软件开发》—从奴隶主到领袖< 4 领导—协作 >

———————我们生活的这个世界是一个强制秩序的年代,为了保持稳定,我们的领导人以发布命令的方式指使着我们,并对我们的日常活动进行控制。正规软件工程中的项目经理,也正如我们的大多数中小学老师,还有我们的政府。他们把他们的思想强行灌输给我们,而不管我们的个性和自由。于是,我们的思想,我们的创造力,我们的相像力,全部被扼杀了。我们就像一具没有思想的尸体,被别人搬来弄去,过着毫无意义的人生。这是

2003-06-09 07:56:00 4142 1

原创 《自适应软件开发》—从奴隶主到领袖< 5 预测—协作—学习 >

——————————这是自适应的模型的。“预测—协作—学习”不断迭代,从而让团队不断进化,不断适应多变的环境。[预测]——就是对目标做一个分析,给出一个大的方向,但不要太具体,但是大方向一定要对。这不仅是提供给团队目标,还有就是让团队中的每个人会因为这个目标而兴奋,而产生激情。在这个过程中,项目组中要定期的散焦,在一个过程开始时不要太关注于细节实现,而过程进行时要从散焦变成聚焦,逐步协商合

2003-06-09 07:56:00 3784

原创 《自适应软件开发》—从奴隶主到领袖< 6 边角料 >

—————《自适应软件开发》是一本很晦涩的书,简直是很难读,我很同情翻译人员的痛苦,我相信即使是英文版的,也是难懂,对于书中的许多地方,我也是揣摩猜测。可能会和书中的内容大相径庭,这点可能类似于爱因斯坦的《相对论》这类思想高深的书,很难让人明白。不过当你忍着痛苦,细细得揣摩书中的思想和方法,并读完整本书后,你会发现这似乎不是一本软件工程的书,这好像是一本哲学书,并会为之有一种激动不已的感觉。并

2003-06-09 07:56:00 4950 5

原创 编程修养(五)

16、把相同或近乎相同的代码形成函数和宏—————————————————————有人说,最好的程序员,就是最喜欢“偷懒”的程序,其中不无道理。如果你有一些程序的代码片段很相似,或直接就是一样的,请把他们放在一个函数中。而如果这段代码不多,而且会被经常使用,你还想避免函数调用的开销,那么就把他写成宏吧。千万不要让同一份代码或是功能相似的代码在多个地方存在,不然如果功能一变,你就要修改好

2003-05-11 11:41:00 12673 3

原创 编程修养(七)

28、||和&&的语句执行顺序————————————条件语句中的这两个“与”和“或”操作符一定要小心,它们的表现可能和你想像的不一样,这里条件语句中的有些行为需要和说一下:    express1 || express2            先执行表达式express1如果为“真”,express2将不被执行,express2仅在express1为“假”时才被执行。因为第一个表达式为真了,

2003-05-11 11:41:00 12131 7

原创 编程修养(四)

11、出错信息的处理—————————你会处理出错信息吗?哦,它并不是简单的输出。看下面的示例:    if ( p == NULL ){        printf ( "ERR: The pointer is NULL/n" );    }    告别学生时代的编程吧。这种编程很不利于维护和管理,出错信息或是提示信息,应该统一处理,而不是像上面这样,写成一个“硬编码”。第10条对这方面的处

2003-05-09 20:01:00 12004 4

原创 编程修养(六)

23、static的使用————————static关键字,表示了“静态”,一般来说,他会被经常用于变量和函数。一个static的变量,其实就是全局变量,只不过他是有作用域的全局变量。比如一个函数中的static变量:char*getConsumerName(){    static int cnt = 0;        ....    cnt++;    ....}cnt变量的值会跟随

2003-05-08 12:19:00 11610 1

原创 编程修养(二)

1、版权和版本———————好的程序员会给自己的每个函数,每个文件,都注上版权和版本。对于C/C++的文件,文件头应该有类似这样的注释:/**************************************************************************   文件名:network.c**   文件描述:网络通讯函数集**   创建人: Hao Chen, 20

2003-05-08 12:12:00 18534 8

原创 编程修养(三)

6、if 语句对出错的处理———————————我看见你说了,这有什么好说的。还是先看一段程序代码吧。    if ( ch >= 0 && ch         /* 正常处理代码 */    }else{        /* 输出错误信息 */        printf("error ....../n");        return ( FALSE );    }这种结构很不好

2003-05-08 12:12:00 19493 13

原创 编程修养(一)

编程修养————什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。我认为好的程序员应该有以下几方面的素质:  1、有专研精神,勤学善问、举一反三。  2、积极向上的态度,有创造性思维。  3、与人积极交流沟通的能力,有团队精神。  4、谦虚谨慎,

2003-05-08 12:11:00 59984 33

原创 Inside i++

i++、++i、i=i+1、效率怎么样?看过一本书上说,i++比i=i+1好的地方是因为i=i+1中的那个1要占用一个寄存器,所以速度没有i++快,于是我想验证一下。另外,以前听说过Java中的“i=i++”得不到正确结论,也就是应该是“先累加再赋值”,但Java经过这种运算后,i值居然没有变化。所以在这里,想一并把这几个问题在C中验证一下。=====================测试的C源

2003-04-04 09:14:00 9275 6

原创 哈希表心得

最近我在做一个项目,其中要用到一个数据结构——Hash Table(哈希表),以前只有理论知识,现在实却发现很不简单,所以写下来和大家共分享。我们知道,哈希表是一个固定大小的数组,数组的每个元素是一个链表(单向或双向)的头指针。如果Key一样,则在一起,如果Key不一样,则不在一起。哈希表的查询是飞快的。因为它不需要从头搜索,它利用Key的“哈希算法”直接定位,查找非常快,各种数据库中的数据结

2003-04-02 09:02:00 34878 19

原创 用C写有面向对象特点的程序

比如在一个项目中,有大量的数据结构,他们都是双向链表,但又想共用一套对链表的操作算法,这怎么做到呢,C中又没有C++中的继承,不然我可以继承一父(类中只有两个指针,一个向前一个向后),而其算法可以写在你类中的虚函数中,供子类使用。如:class Links{public:    Links* back;    Links* forword;    virtual Add(){ ... };

2003-04-02 09:02:00 26190 20

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除