摘要:
之前公司培训的时候对变量就很重视,并且编码规范里面也有一些讲述,毕竟,变量是程序员最常打交道的程序元素之一。今天重读了而关于变量的这一章,再一次崇拜一下作者老到的程序功底,也解决了几个一直存疑的问题。 1.轻松掌握变量定义 (1)隐式声明:这对于任何一种语言来说都是一个非常危险地特性。接触过的支持隐式声明的语言有三种:Matlab,VB以及PHP。曾记得上学时用Matlab写算法,常常因为一个变量的值不对要查代码很久。有时候弄得很烦躁,并且纠错的效率极其低下。 (2)关闭隐式声明:如果一个支持隐式声明的编译器支持关掉隐式声明的话,我想我会毫不犹豫关掉它的,... 阅读全文
摘要:
防御式编程的核心思想是:子程序不应该因为错误数据而被破坏,哪怕是由其它子程序所产生的错误数据。 1. 保护程序免遭非法输入数据的破坏 (1)检查所有来源于外部的数据值:确保外部数据合法,在允许的范围内。 (2)检查子程序所有输入参数的值 (3)决定如何处理错误的输入数据 2.断言 断言(Assertion)是在开发期间使用的,让程序在运行时进行自检的代码(通常是一个子程序或者宏)。断言为真,表示程序运行正常,断言为假,则意味着它已经在代码之中发现了意料之外的错误。 断言可以用来处理如下的假定: a.输入参数或者输出参数的取值处于预期的范围内:这种处理很有必要,也是最常见的方式 b.子程序开始. 阅读全文
摘要:
这段时间代码质量很差,重新捡起有段时间没看的《代码大全》。以前培训的时候是很多人一起看,这次准备看一些对于工作帮助比较明显或者说工作中急需提高的章节。 下面主要摘录书中的一些比较经典或者说比较重要的内容,在有些地方也加上我自己的一些感受。成为高效程序员的一个关键就在于,当你开发程序任何一部分代码时,都能安全地忽视程序中尽可能多的其余部分。类的基础:抽象数据类型(ADTs) 1.抽象数据类型(ADT,abstract data type),是指一些数据以及对这些数据所进行的操作的集合。 使用ADT的益处 (1)可以隐藏实现细节:例如你可以把字体数据的类型信息隐藏起来,意味着如果数据的类型发生改. 阅读全文
摘要:
做任务的时候一定要一开始就看测试用例。虽然有的任务自己很熟,但是如果不时时关注测试用例的话,还是容易走偏,到后头再去修改的话,会浪费不少时间。 阅读全文
摘要:
1.F12 前往定义处2.F3 查找文件中下一个字符串3.Shift+F3 查找文件中上一个字符串4.Ctrl+F3 查找,如果当前光标在字符串上,则选中光标所在的字符串,类似Ctrl+F5.F5 编译并通过VC执行6.Ctrl+F5 不通过VC,直接执行编译后的exe文件7.Shift+F5 通过F5运行程序后,直接在VC中停止程序的执行(但是对Ctrl+F5执行后的程序无效)8.F7 编译工程9.Ctrl+F7 编译当前文件10.Alt+F7 弹出工程设置对话框11.F9 设置断点12.Ctrl+F9 清除所有断点13.Ctrl+Shift+G 光标在文件名上,直接跳到制定的文件14.Ct 阅读全文
摘要:
GDI Windows图形设备接口(GDI,Graphics Device Interface)是为与设备无关的图形设计的。所谓设备无关性,就是操作系统屏蔽了硬件设备的差异。 GDI的设备无关性是windows操作系统的特色之一。 设备描述列表(Device Context)是一个用来确定任何设备的GDI输出的位置和形象的属性的集合。应用程序不能直接存取设备描述表,但是可以使用设备描述表的句柄间接地存取设备描述表及其属性。刷新 Windows系统通常通过发送WM_PAINT消息将刷新请求传递给应用程序。 刷新有三种可能:(1)窗口移动后的刷新;(2)被覆盖区域的刷新;(3)对象穿越后的刷新。 阅读全文
摘要:
1、技术非常重要,特别在信息产业,只有不断的创新,才能赶上科技发展的步伐;2、对于半导体行业,似乎只有赶上了摩尔定律速度的大公司才有强劲的生命力;3、如果靠技术不能一统江湖的话,那可以考虑靠服务,如IBM;4、技术优势是可以转换成商业优势的,如谷歌;5、商业优势是可以转换成技术优势的,如微软;6、关键时刻需要的是敢于承担的有魄力的企业家,如盖茨;7、被盗版有时候也是一种抢占市场的方式,必要的时候可以睁一只眼睛闭一只眼,如微软;8、从利益最大化的角度来看,有时候侵犯别人的知识产权不一定是坏事,但是自己也的有属于自己的技术。如微软就侵犯过很多知识产权,虽然最后赔了很多钱,但是最终它从侵犯知识产权的 阅读全文
摘要:
Delphi已经穷途末路了,重新拾起VC的课本,迎向开阔的明天。 VC的基础知识:1.指针 指针可以赋零值,表示不指向任何一个对象,通常用NULL表示。2.引用 引用是一个别名,对引用的改动就是对目标的改动,但需要注意的是:引用对象必须在定义的时候就初始化。3.成员函数的声明与定义 在C++中,成员函数一般在类的内部声明,方法的具体实现可以在类内部完成(内联函数),也可以在类的外部实现,且方法的具体实现和类定义可以不放在同一个源文件中。4.内联函数 内联函数指的是定义在类体内的成员函数,即函数体也放在类体内。内联函数的好处是:其它函数在调用时要转到被调用函数的函数体执行完成后再返回调用函数中. 阅读全文
摘要:
最近想看一些使用OpenGL的开源图形软件的代码,发现软件开发版本很乱,光vc就有很多版本。自己机器上安装的是VS2008,一时兴起,在笔记本上又安装了VC++6和VS2010,然后配置了一下OpenGL,发现竟然都能用,现将过程记录如下: (1)首先是在谷歌里面百度了一番,发现很多人说在一台电脑上同时装VC6,VS2005,VS2008,VS2010是可行的,只要不装在同一个目录下就可以。所以赶紧下了VC6和VS2010.装VC6的时候有提示,大意是要安装的软件跟电脑上的VS不兼容。直接忽视之,咔咔往下装。成功后写了个小例子,跑起来发现木有问题。(2)接着安装VS2010,因为本机上的20. 阅读全文
摘要:
一直想了解Linux,所以决定安装一个版本试试。用的是VmWare7.0的版本,安装的是Red Hat Linux 9.0简体中文零售版。一开始安装的时候其实很顺利,但是在虚拟机中插入第二张光盘镜像之后出问题了,老提示“该光盘无法被挂载”,如图所示: 后来发现,原来是在运行过程中设置改变虚拟光驱的光盘镜像的过程中,是默认将虚拟光驱断开的,这样,即使之后切换了光盘镜像,由于虚拟光驱断开了,所以还是不能加载光盘镜像。在VMWare7中,只需要在切换光盘的时候选中连接状态即可。如下图所示: 阅读全文