- 博客(22)
- 资源 (14)
- 收藏
- 关注
原创 关于c指针传值的隐蔽错误
下列代码中存在指针错误:这种方式执行完毕时,G_stack依然没有指向分配的内存,函数只是将stack由G_stack传给它的值NULL改为指向新分配的内存,而不影响G_stack指针所指向的位置。正确的初始化方法是,返回结构体变量而非其指针,或者直接在主调函数中完成内存分配。
2010-06-24 17:20:00
679
原创 vim下使用linux终端辞典sdcv
越来越发现vim的强大了~~今天看到一篇文章关于sdcv和vim的。http://www.phpfans.net/article/htmls/201003/MjgzMTA0.html。感觉很好使。不过原文介绍的在vim中使用sdcv的方法会覆盖系统默认的关键词查找器 man(shift + k),本人感觉对于一些系统函数,还是用 man比较有用,所以选择了另一种方式,可以同时使用 man 和 sdcv ——直接建立在vim中调用sdcv的快捷键。方法如下:在vimrc(位于 ~/.vimrc 或者 /etc
2010-06-03 16:45:00
4359
原创 敏捷设计原则之一:单一职责原则(SRP)
就一个类而言,应该仅有一个引起它变化的原因。 职责就是“引起变化的原因”。如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。一种区分一个类是否需要分解为多个类的依据是:应用程序的变化是否总是导致类的职责的同时变化,如果是,可以不分离;如果不是,就需要将类分解。 此外,应注意:变化轴线(职责)仅当变化实际发生时才有真正的意义。如果没有征兆,那么
2010-05-24 11:27:00
641
原创 敏捷设计原则之一:单一职责原则(SRP)
就一个类而言,应该仅有一个引起它变化的原因。 职责就是“引起变化的原因”。如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。一种区分一个类是否需要分解为多个类的依据是:应用程序的变化是否总是导致类的职责的同时变化,如果是,可以不分离;如果不是,就需要将类分解。 此外,应注意:变化轴线(职责)仅当变化实际发生时才有真正的意义。如果没有征兆,那么
2010-05-24 11:10:00
621
原创 敏捷软件开发宣言与原则
Technorati 标签: 敏捷软件开发 核心内容: 1. 个体和交互 胜过 过程和工具 2. 可以工作的软件 胜过 面面俱到的文档 3. 客户合作 胜过 合同谈判 4. 响应变化 胜过 遵循计划 启示: 1. 人是获得成功的最为重
2010-05-19 17:17:00
703
原创 C专家编程学习笔记——第五、六、七章:对编译器和系统底层的思考
C专家编程的这三章都是关于程序编译、链接、运行的内部机制以及对操作系统底层的和存储器的一些分析。 第五章:对链接的思考 分析了不同链接方式如静态链接、动态链接和共享链接的不同,接着分析了类unix系统中链接的一些情况,最后介绍了查看“连接器报告文件”的方法。 第六章:运行时数据结构 分析了程序在运行时的情况,包括数据段、文本段的划分和映射关系;分析了堆栈的使
2010-03-31 16:23:00
564
原创 C专家编程——第四章:数组与指针并不相同
1. 数组并非指针 注意以下声明的区别: extern int *x; //声明 x 是个int型的指针; extern int y[]; //声明 y 是个int型数组,长度尚未确定,其存储在别处定义。 错误示例: 文件1: int mango[100];
2010-03-23 13:25:00
782
原创 C专家编程学习笔记——第三章(四):C语言声明之 typedef
typedef是一种有趣的声明形式:它为一种类型引入新的名字,而不是为变量分配空间。typedef声明的解读可以按照上一节所介绍的方法进行。 一般情况下,typedef用于简洁地表示指向其他东西的指针。典型的例子是signal()原型的声明。在ANSI C标准中,signal()的声明如下: void (*signal (int sig, v
2010-03-22 11:02:00
836
原创 C专家编程学习笔记——第三章(三):有效地解读C语言的声明
理解C语言声明的优先级规则 A 声明从它的名字开始读取,然后按照优先级顺序依次读取。 B 优先级从高到低依次是: B.1 声明中被括号括起来的那部分 B.2 后缀操作符: 括号()表示这是一个函数,而 方括号[ ]表示这是一个数组
2010-03-18 14:30:00
744
原创 C专家编程学习笔记——第三章(三):有效地解读C语言的声明
1. 理解C语言声明的优先级规则 A 声明从它的名字开始读取,然后按照优先级顺序依次读取。 B 优先级从高到低依次是: B.
2010-03-18 14:12:00
744
原创 《C专家编程》学习笔记——第三章(二):关于联合
联合的第一种用法:联合一般作为大型结构的一部分存在。 联合一般用来节省空间,因为有些数据项是不可能同时出现的,如果同时存储它们,显然颇为浪费。例如,要存储关于动物种类的信息,首先想到的方法可能是: struct creature{ char has_backbone; char has_fur; short num_of_leg
2010-03-17 21:56:00
522
原创 C专家编程学习笔记——第三章:C语言的声明(一)
1. 位字段 struct pid_tag { unsigned int inactive :1; unsigned int :1; //1位的填充 unsigned int refcount :6; uns
2010-03-16 21:35:00
743
原创 C专家编程学习笔记——第二章:语言特性
1. sizeof() sizeof()的返回值是 无符号数; 当操作数是个类型名时,两边必须加上括号(这常常使人误认为它是个函数),但当操作数是变量时就不必加括号。如: p = N * sizeof *q; //第一个“*”表示乘号,第二个表示“取指针所指向的值” 2. ANSI C的“maximal much strategy ”(最大
2010-03-16 20:49:00
628
原创 关于ARP
什么是ARP ARP,即地址解析协议,实现通过IP地址得知其物理地址。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的地址
2010-03-16 11:04:00
1285
原创 MFC中设置焦点
初次接触MFC,实现填完一系列表单后继续添加另外一张,并且将焦点设置为第一张初次填写时的焦点(可能就是指第一个获取焦点的控件)。 用::SetFocus(m_hWnd) ; 实现重置表单的功能:UpdateData(FALSE); 更新数据时是 UpdateData(TRUE);(更新类中对应属性的值,不更新控件中显示的值) 实现子窗口的退出:CDialog::OnOK(); CDialo
2010-03-10 17:22:00
3109
原创 MFC中MessageBox的用法
消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。 1. MessageBox("这是一个最简单的消息框!"); 2. MessageBox("这是一个有标题的消息框!","标题"); 3. MessageBox("这是一个确定 取消的消息框!","标题", MB_OKCANCEL ); 4. M
2010-03-10 16:41:00
877
原创 inux源码程序安装[转贴]
linux源码程序安装[转贴]源地址:http://hi.baidu.com/deadleon/blog/item/11cb708bf57e61789f2fb41f.html2008-12-01 11:24安装原码程序时,都要执行三步:1./configure 2 make 3 make install这些都是典型的使用GNU的AUTOCONF和AUTOM
2009-09-21 16:16:00
554
转载 (转)wuauclt.exe病毒解决方案
最近感觉机子好慢,后来发现中毒了,又是这个东东,好像以前中过…… system文件夹中的wuauclt.exe是WINDOWS自动更新的客户端。然而,今天说的这个wuauclt.exe非%system%文件夹中的那个wuauclt.exe位于windows文件夹中。 连接网络时,运行这个wuauclt.exe,它通过80端口访问61.128.196.671创建下列文件: C:win
2008-11-07 13:51:00
1055
原创 JAVA从控制台读取字符串
从键盘读取:BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); stdin.readLine(); 从文件读取也是一样的: BufferedReader in = new BufferedReader(new FileReader("FileName.txt"));in.readLine()) ;
2008-05-07 16:18:00
2112
原创 摘:case用法
create table #(id int,vote int)insert into # values(44,-2)insert into # values(51,-3)insert into # values(51,1)insert into # values(52,-1)select id,max(case when vote0 then vote else null end) as -v
2008-04-22 19:12:00
579
原创 sqlserver2000中实现差集操作
昨天遇到一个问题,在sqlserver2000中实现差集(sqlserver2000不支持两个select语句间的intersect和except操作),自己写的语句和答案的查询结果不一样,一直看不出两个语句在逻辑上有什么不同,今天对照结果集才发现了问题所在,拿来分享下: choices表结构 CREATE TABLE [dbo].[CHOICES] ( [no] [int
2008-04-22 16:30:00
2981
原创 (java)关于toString()
关于object的toString()方法,如下 getClass().getName() + @ + Integer.toHexString(hashCode()) 将char[]转换为String用:String String.valueOf(char[]) 初学java,都还不太懂,今天做一个将字符串倒序的函数的作业,遇到了点问题,第一次到cs
2008-04-17 21:10:00
1165
TCPIP详解卷3:TCP事务协议,HTTP,NNTP和UNIX域协议.part02
2009-06-27
TCPIP详解卷3:TCP事务协议,HTTP,NNTP和UNIX域协议.part1
2009-06-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人