代码改变世界

阅读排行榜

(转)条款32: 尽可能地推迟变量的定义

2009-06-22 13:56 by htc开发, 143 阅读, 收藏,
摘要: 是的,我们同意C语言中变量要放在模块头部定义的规定;但在C++中,还是取消这种做法吧,它没必要,不自然,而且昂贵。还记得吗?如果定义了一个有构造函数和析构函数的类型的变量,当程序运行到变量定义之处时,必然面临构造的开销;当变量离开它的生命空间时,又要承担析构的开销。这意味着定义无用的变量必然伴随着不必要的开销,所以只要可能,就要避免这种情况发生。正如我所知道的,你的编程方式优雅而不失老练。所以你可能会在想,你决不会定义一个无用的变量,所以本条款的建议不适用于你严谨紧凑的编程风格。但别急,看看下面这个函数:当口令够长时,它返回口令的加密版本;当口令太短时,函数抛出logic_error类型的异常 阅读全文

Linux下编译安装boost【转载】适用于新版本

2011-10-29 16:37 by htc开发, 142 阅读, 收藏,
摘要: 原来转载那个讲的安装版本过老,不适合现在版本,重新找了一个收集下来备用原文出处:http://blog.ehomy.net/archives/148-----------------------工作平台:Ubuntu获取boost库Linux下官方提供了两个压缩版本:boost_1_43_0.tar.bz2boost_1_43_0.tar.gzwindows平台有:boost_1_43_0.7zboost_1_43_0.zip找到其中一个Unix/Linux包的直接下载地址,然后输入下列命令sudo wget http://downloads.sourceforge.net/project/b 阅读全文

cdecl、stdcall、fastcall函数调用约定区别

2011-08-22 10:43 by htc开发, 142 阅读, 收藏,
摘要: 在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者和函数本身来协调。为此,计算机提供了一种被称为栈的数据结构来支持参数传递。 栈是一种先进后出的数据结构,栈有一个存储区、一个栈顶指针。栈顶指针指向堆栈中第一个可用的... 阅读全文

归并排序

2011-09-22 10:55 by htc开发, 141 阅读, 收藏,
摘要: 归并排序:二路归并排序 此算法采用自顶向下的归并排序算法,算法形式简洁,首先设排序的当前区间为a[low...high]具体步骤: 分解:将当前区间一分为二,即求分裂点。 求解:递归地对两个子区间a[low...middle]和a[middle+1...high]进行归并排序 组合:将已排序的两个子区间a[low...middle]和a[middle+1...high]归并为一个有序的区间r[low...high] 递归总结条件:子区间长度为1(一个记录本身就是有序的)算法的代码实现:#include <stdio.h>#include <stdlib.h>void m 阅读全文

linux 启动全接触

2006-02-07 11:29 by htc开发, 141 阅读, 收藏,
摘要: 关于Windows启动过程介绍的文章可谓多如牛毛,而对于Linux的介绍却是凤毛麟角。凡是曾经使用过Linux的用户可能都会注意到,当计算机启动时,屏幕上会出现很多信息。一般情况下,这些信息我们可以通过以下的命令看到: cat /var/log/dmesg | more 这些信息究竟有什么含义?这个问题看起来似乎很容易回答,因为只要在Linux参考书里查找一下,就会找出一个类似于这样的答案:“这是一些内核启动信息……”。但是“内核启动信息”到底是什么意思呢? 要想对Linux内部工作有所了解,就必须要对Linux内核的体系结构有一个全面的了解。下面我们就去揭开它的秘密。在此,我不想解释Linu 阅读全文
上一页 1 ··· 93 94 95 96 97 98 99 100 101 ··· 105 下一页