摘要: C语言深度剖析三分类: C/C++一.内存管理1.关于内存:内存分为三个部分:静态区,栈,堆。其实堆栈就是栈,而不是堆。堆的英文是 heap;栈的英文是 stack,也翻译为堆栈。静态区:全局初始化区,全局未初始化区。保存自动全局变量和static变量(包括 static全局和局部变量)。静态区的内容在总个程序的生命周期内都存在,由编译器在编译的时候分配。栈:保存局部变量。栈上的内容只在函数的范围内存在,当函数运行结束,这些内容也会自动被销毁。其特点是效率高,但空间大小有限。堆:由 malloc系列函数或 new操作符分配的内存。其生命周期由 free或 delete决定。在没有释放之前一直存 阅读全文
posted @ 2013-10-23 10:54 oldpeanut 阅读(120) 评论(0) 推荐(0) 编辑
摘要: C语言深度剖析二分类: C/C++1.关于指针的数据类型:指 针变量 p 里存储的任何数据都将被当作地址来处理。可以这么理解:一个基本的数据类型(包括结构体等自定义类型)加上“*”号就构成了一个指针类型的模子。这个模子 的大小是一定的,与“*”号前面的数据类型无关。 “*”号前面的数据类型只是说明指针所指向的内存里存储的数据类型。编译器会把存在指针变量中的任何数据当作地址来处理。2.关于NULL:注意NULL就是NULL,它被宏定义为 0。NUL是ASCII码表的第一个字符,表示的是空字符,其ASCII码值为 0。其值虽然都为0,但表示的意思完全不一样。同样,NULL和0表示的意思也完全不一样 阅读全文
posted @ 2013-10-23 10:51 oldpeanut 阅读(164) 评论(0) 推荐(0) 编辑
摘要: C语言深度解剖一分类: C/C++一.关键字1.关于sizeof:sizeof不是函数,而是关键字。sizeof在计算变量所占空间大小时,括号可以省略,而计算类型(模子)大小时不能省略。2.定义和声明的区别:定义和声明之间的区别,定义分配的内存,而声明没有。定义只能出现一次,而声明可以出现多次。3.关于寄存器:寄存器其实就是一块一块小的存储空间,只不过其存取速度要比内存快得多。4.关于register:register变量必须是一个单个的值,并且其长度应小于或等于整型的长度。而且register变量可能不存放在内存中, 所以不能用取址运算符 “&”来获取 register变量的地址。5 阅读全文
posted @ 2013-10-23 10:49 oldpeanut 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 条款9:决不再构造和析构过程中调用virtual函数,包括通过函数间接调用virtual函数。应用:想在一个继承体系中,一个derived class被创建时,某个调用(例如生成相应的日志log)会有相对应的实现。原因: base class的构造函数会先被调用,而在base class 构造期间virtual函数绝不会下降到dedrived class阶层。事实上,C++的其它部分(dynamic_cast & typeid),在此期间也是一样的把对象视为base class。解决办法:籍由”令derived class 将必要的构造信息向上(通过函数参数)传递至base class 阅读全文
posted @ 2013-10-02 22:58 oldpeanut 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 为 setuptools 开路搭桥 赖勇浩(http://laiyonghao.com)在 这里,我们有些网站无法访问。其中对我影响比较大的一个就是安装某些 Python 模块的时候,easy_install 无法访问到网站。在这里分享让 easy_install 使用代理的方法,如果你拥有 socks5 或 http 代理服务器可用,这个方法能够让 easy_install 完美地跨越长城。http 首先介绍容易实现的 http 方式。得益于 python 模块 urllib 能够透明使用代理,easy_install 使用 http 代理是非常方式的。无论在 windows 还 linux 阅读全文
posted @ 2013-07-24 11:23 oldpeanut 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 结合OPENSIFT源码详解SIFT算法一.算法介绍SIFT算法(Scale-Invariant feature transform,尺度不变特征变换)通过在图像中提取独特性不变特征,可以实现物体或场景在不同视角下的可靠匹配。其提取的特征对于图像缩放、旋转和 一定范围内的三维仿射变换、噪声叠加、光照变化均具有不变性。由于特征的高度独特性,场景中的每一个特征都有很大的可能在由多幅图像提取的特征数据库中得 到正确的匹配结果。因此使用这些特征可以用于物体识别。识别首先需将每个特征与由已知物体组成的特征数据库进行快速最邻匹配,然后通过霍夫变换确定属于同 一个物体的特征点对,最后通过对一致性姿态参数的最 阅读全文
posted @ 2013-07-19 16:32 oldpeanut 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)前段时间学习和了解了下Google的开源C++单元测试框架Google Test,简称gtest,非常的不错。 我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了。其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们的测试框架, 但最后我们还是决定使用gtest取代掉原来的自己的测试框架,原因是:1.不断完善我们的测试框架之后就会发觉相当于把gtest重新做了一遍,虽然轮子造的很爽,但是不是必要的。2.使用gte 阅读全文
posted @ 2013-06-02 17:12 oldpeanut 阅读(75) 评论(0) 推荐(0) 编辑
摘要: Windows8激活.Net3.5Windows8默认安装了 .net framework 4.0,却没有启用 .net framework 3.5。但许多软件要求.Net 3.5,包括安装VS2008。解决方法:以管理员身份运行以下命令("E:"是Windows8安装镜像盘符):dism.exe /online /enable-feature /featurename:NetFX3 /Source:E:\sources\sxs来自为知笔记(Wiz)Time=2013-05-16 13:28:18 阅读全文
posted @ 2013-05-16 14:37 oldpeanut 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 入住博客园,在大神出没的地方找个地方瞻仰。1 #include <stdio.h>2 3 int main()4 {5 printf("Hello World!");6 return 0;7 } 阅读全文
posted @ 2013-05-08 18:01 oldpeanut 阅读(89) 评论(0) 推荐(0) 编辑