堆(heap)和堆栈(stack)区别

一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放(ss) ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)— 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块 区域(.data), 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域(.bss)。 - 程序结束后有系统释放...
2008-11-02 23:34 | 阅读 4239 次 | 评论 1 条

if和switch效率的再研究

if和switch效率的再研究 昨天发现了一本叫做CSAPP的书,终于找到了关于switch问题的解答。 这是一段C代码: /* $begin switch-c */ int switch_eg(int x) { int result = x; switch (x) { case 100: result *= 13; break; case 102: result += 10; /* Fall through */ cas...
2008-10-31 21:29 | 阅读 7954 次 | 评论 0 条

c++的string类的所有函数及功能

append 函数能将某字符串(或数据串)加到某字符串后面 assign 函数能将字符串(或数据串)的内容设定给某字符串 at 函数能回传字符串中位于某个位置的字符 begin 函数将回传该字符串的起始定位器 c_str 函数能将字符串对象中的内容,以c语言字符串的方式输出 capacity 函数能回传目前所能控制的对象容器大小 compare 函数将会回传 可控制的字符吕容量 copy 函数能将数据串的内容复制到加一个数据串中 data 函数能将数据串的第一个起始指针传出 e...
2008-10-26 17:02 | 阅读 14874 次 | 评论 3 条

C++ 中的基本语法

C++ 类class中定义的变量和C结构体struct中的变量一样 也不能赋初值,而把其赋成 0 是纯虚函数的特性 也就是不存在纯虚变量,因此不可 class z{ int a = 0; 或者 int a = 1; } 而只可 class z{ int a; }
2008-10-23 14:15 | 阅读 5579 次 | 评论 6 条

const变量的副本

const int ii = 3; int *pi = (int *)ⅈ *pi = 4;赋给指针的是const的副本 也就是没有 改变 const的值,只是改变了副本的值
2008-10-16 23:51 | 阅读 4881 次 | 评论 5 条

导入库描述

导入库 hello.lib和其对应的动态库具有一致的函数名 hello_hello_
2008-10-15 13:22 | 阅读 2781 次 | 评论 0 条

ATL、ActiveX、OLE及组件之间的关系

基于VC++中ATL创建ActiveX控件的探讨 作者: 任凤华 李兰 出处: 计算机遇信息技术 摘 要 介绍了ActiveX控件和ATL技术,并以一个简单的圆的控件实现为例,介绍了VC++6.0中如何用ATL技术创建ActiveX控件,以及如何在网页中使用该控件。   关键词 ATL,ActiveX控件,事件   引言   ActiveX控件是微软公司提供的功能强大的程序设计和开发技术,是COM组件开发技术的重要组成部分。它是OLE的第三个版本,对原先OLE控件的最大扩展是增加了Internet功能,它不仅可以在支持OLE控件的容器中使用,更可以作为一个Internet控件...
2008-10-12 18:14 | 阅读 8212 次 | 评论 0 条

动态链接库DLL

一、动态链接库的概念   动态链接库(Dynamic Link Library,缩写为DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。动态链接库文件的扩展名一般是dll, 也有可能是drv、sys和fon,它和可执行文件(exe)非常类似,区别在于DLL中虽然包含了可执行代码却不能单独执行,而应由Windows应用 程序直接或间接调用。   动态链接是相对于静态链接而言的。所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。换句话说,函数和过 程的代码就在程序的exe文件中,该文件包含了运行时所需的全部...
2008-10-10 22:25 | 阅读 5753 次 | 评论 0 条

CallWindowProc 和 DefWndProc 异同点

同:***WindowProc是个窗口过程,其返回值是由系统处理的,应用程序中是不用也无法处理的。 调用这个挂钩函数后,当有消息到窗口后,有系统调用***WindowProc函数处理消息,由系统调用的函数返回值当然由系统处。异:DefWndProc应该是一个函数指针,通过SetWindowLong或者GetWindowLong获得,从名字上看,指缺省的Windows Procedure。 CallWindowProc在MSDN中的解释就是将message的信息给指定的WinProc。 这个方法在SubClass的时候特别重要。(SubClass就是用自己的WinProc替代缺省的Wi...
2008-10-05 23:27 | 阅读 5242 次 | 评论 0 条

图像处理和计算机视觉函数库 OpenCV

OpenCV是Intel公司开发的图像处理和计算机视觉函数库,它有以下特点: 1) 开放的C/C++源码 2) 基于Intel处理器指令集开发的优化代码 3) 统一的结构和功能定义 4) 强大的图像和矩阵运算能力 5) 方便灵活的用户接口 6)同时支持MS-WINDOWS、LINUX平台 作为一个基本的计算机视觉、图像处理和模式识别的开源项目,OPENCV可以直接应用于很多领域,作为第二次开发的理想工具。不过在利用 OPENCV做开发应用前,请仔细阅读OPENCV包所附带的LICENSE《Intel License Agre...
2008-09-29 17:50 | 阅读 4505 次 | 评论 0 条

WM_DESTROY,WM_CLOSE 功能有什么不同 ?

WM_DESTROY,WM_CLOSE 功能有什么不同 下面程序执行时出错 void CMainFrame::OnClose() { CMDIFrameWnd::OnClose(); CDocument *doc; doc=this->GetActiveDocument(); } 下面程序执行时不出错, void CMainFrame::OnDestroy() { CDocument *doc; doc=this->GetActiv...
2008-09-28 09:50 | 阅读 9332 次 | 评论 0 条

字符串属性 substr(截取字符串子串)

Copies a substring of at most some number of characters from a string beginning from a specified position. basic_string substr( size_type _Off = 0, size_type _Count = npos // 晕死了,原来这里的_Count是个数) const;Parameters_OffAn index locating the element at the position from which the copy of the strin...
2008-09-20 16:44 | 阅读 6001 次 | 评论 0 条

虚函数特性--复习二

[20] Inheritance virtual functions, C++ FAQ LiteFAQs in section [20]: [20.1] 什么是“虚成员函数”? [20.2] C++ 怎样同时实现动态绑定和静态类型? [20.3] 虚成员函数和非虚成员函数调用方式有什么不同? [20.4] 析构函数何时该时虚拟的? [20.5] 什么是“虚构造函数(virtual constructor)”? [20.1] 什么是“虚成员函数”? 从面向对象观点来看,它是 C++ 最重要的特征:[6.8], [6.9]. ...
2008-08-31 17:28 | 阅读 3720 次 | 评论 0 条

虚函数特性--复习一

虚函数是C++中实现多态的机制。下面通过几个小程序实验来复习一下虚函数的概念用法。 #include class A {public: virtual void f() { cout << "A::f()" << endl; }}; class B : public A{public: void f() { cout << "B::f()" << endl; }}; int main(){ A *a = new B; a->f(); return 0;} 在这个实验中a虽然是指向A,但调用的f()却是B的。 在基类中声明的虚函数在派生类中也是虚的,即使没有加上v...
2008-08-31 17:24 | 阅读 3487 次 | 评论 0 条

string头文件使用

之前一直认为不带.h的头文件和带.h的头文件直接基本没有区别 只是在使用不带.h的头文件的时候添加一个 using namespace std; 就可以,但是尝试了下面的代码 #include <iostream> #include <string> using namespace std; int main() { string word; while ( cin&amp;gt;&amp;gt;word ) { cout<&amp;lt;&quot;word read is: &quot;&amp;lt;&amp;lt...
2008-06-09 14:18 | 阅读 8942 次 | 评论 2 条

AnsiString类

转 :www.51bcb.com 介绍AnsiString类之前,先要介绍一些背景知识。VCL大量利用Pascal长字串数据类型,几乎所有基于文本的VCL属性都采用Pascal长字串。例如,Text、Name和Caption属性都是Pascal长字串属性。VCL的许多构件方法和事件处理函数也采用Pascal长字串。关于Pascal长字串数据类型要注意两点。第一,Pascal长字串是真正的语言数据类型,而不象C/C++中一样只是个字符数组。第二,C++内部没有Pascal长字串的对等类型。由于VCL大量使用Pascal长字串,而C++ Builder使用Pascal VCL,所以B...
2008-06-09 14:00 | 阅读 6859 次 | 评论 0 条

Matlab中计算信噪比方式

Matlab中计算信噪比方式:%===========================Happy===================================%function snr=SNR(I,In)% 计算信号噪声比函数% by Qulei% I :original signal% In:noisy signal(ie. Original signal + noise signal)% snr=10*log10(sigma2(I2)/sigma2(I2-I1))[row,col,nchannel]=size(I);snr=0;if nchannel==1%gray imag...
2008-06-05 09:48 | 阅读 34532 次 | 评论 1 条

格式控制

void dump_array16(int array[],int size){ int i; --size; for (i = 0; i &amp;lt; size; ++i) { printf(&quot;0x%04x, &quot;, array[i]); if(!((i+1)&amp;0x7)) // 每8个元素换行 printf(&quot;\n &quot;); } printf(&quot;0x%04x\n};\n\n&quot;, array[size]);}void dump_array1...
2008-06-03 00:53 | 阅读 4207 次 | 评论 0 条

兼容设计

为了使我们的程序即适用于单字节字符,又适用于Unicode字符,可以用一些开关来进行编译时的设定。用的函数如果是ANSI C标准的,可以通过定义UNICODE来控制;如果不是ANSI C标准的可以通过定义_UNICODE来控制。例如下面的定义: #ifdef UNICODE #define MessageBox MessageBoxW //适用于Unicode字符 #else #define MessageBox MessageBoxA //适用于单字节字符 #endif 同一个MessageBox函数在不同的设定中定...
2008-05-31 22:40 | 阅读 4508 次 | 评论 0 条

BMP图像的基本操作

在 实现数字图象处理的过程中,主要是通过对图像中的每一个像素点运用各种图像处理算法来达到预期的效果,所以进行图像处理的第一步,也是我们最关心的问题, 是如何得到图像中每一个像素点的亮度值;为了观察和验证处理的图像效果,另一个需要解决的问题是如何将处理前后的图像正确的显示出来。我们这章内容就是解 决这些问题。   随着科技的发展,图像处理技术已经渗透到人类生活的各个领域并得到越来越多的应用,但是突出的一个矛盾是图像的格式 也是越来越多,目前图像处理所涉及的主要的图像格式就有很多种,如TIF、JEMP、BMP等等,一般情况下,为了处理简单方便,进行数字图像处理所采用 的都是BMP格...
2008-05-31 17:16 | 阅读 3779 次 | 评论 1 条
浏览1942803次