自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

转载 typedef和#define的用法与区别

一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef    int       INT;typedef    int       ARRAY[10];typedef   (int*)   pINT;typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性

2010-04-29 11:42:00 388 1

转载 WINFORM开发小技巧

技巧1,合理使用控件的Tag属性 几乎所有winform控件有都名为object类型的Tag属性,此属性多数情况下用来承载完整的数据源,相当于WEBFORM页面中hidden控件的作用,举个简单的例子C# code <!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.Cod

2009-02-12 20:30:00 488

转载 Win32消息机制

Dos的过程驱动与Windows的事件驱动在讲本程序的消息循环之前,我想先谈一下Dos与Windows驱动机制的区别:DOS程序主要使用顺序的,过程驱动的程序设计方法。顺序的,过程驱动的程序有一个明显的开始,明显的过程及一个明显的结束,因此程序能直接控制程序事件或过程的顺序。虽然在顺序的过程驱动的程序中也有很多处理异常的方法,但这样的异常处理也仍然是顺序的,过程驱动的结构。而Windo

2008-11-19 10:32:00 1732 2

转载 c++头文件一览表

传统 C++   #include     //设定插入点   #include //字符处理   #include //定义错误码   #include //浮点数处理   #include //文件输入/输出   #include //参数化输入/输出   #include    //数据流输入/输出   #include     //定义各种数据类型最值常量

2008-11-10 10:55:00 512

转载 声明与定义

 Declarations and Definitions As well see in Section 2.9 (p. 67), C++ programs typically are composed of many files. In order for multiple files to access the same variable, C++ distinguishes b

2008-11-07 11:01:00 390

转载 内联函数与宏定义

内联函数与宏定义  在C中,常用预处理语句#define来代替一个函数定义。例如:    #define MAX(a,b) ((a)>(b)?(a):(b))  该语句使得程序中每个出现MAX(a,b)函数调用的地方都被宏定义中后面的表达式((a)>(b)?(a):(b))所替换。  宏定义语句的书写格式有过分的讲究, MAX与括号之间不能有空格,所有的参数都要  放在括号里。尽管如此,它还是有麻

2008-11-07 10:49:00 3104 2

转载 static和const的比较和解释

static 是c++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。  static 的两大作用:  一、控制存储方式:  static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。  1、引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间

2008-11-04 13:31:00 771 1

转载 memcpy 与 strcpy

strcpy           原型:extern   char   *strcpy(char   *dest,char   *src);                             用法:#include                   功能:把src所指由NULL结束的字符串复制到dest所指的数组中。                 说明:src和dest所指内存区域不可

2008-10-29 10:33:00 773 1

转载 关于位结构体

写出下列程序在X86上的运行结果。struct mybitfields{unsigned short a : 4;unsigned short b : 5;unsigned short c : 7;}test;void main(void) {int i;test.a=2;test.b=3;test.c=0;i=*((short *)&test);printf("%d ",i);}这个

2008-10-28 14:45:00 1672

转载 内存泄漏详解

      对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以 应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java

2008-10-24 15:05:00 463

转载 数组与指针的关系

1,当我们定义一个一维数组int a[10]时,系统在内存中开辟十个内存空间,并且用a指向这块空间的开始,用来标识这块空间。那么这里的a就可以理解成一个指向空间首地址的指针,于是有这个样的关系式: a === &a[0]   (===代表等价)。在等式两边同时加个星号*,得到这样的式子 *a === a[0]。由于a可以看成是指针,所以它可以实现移动。a+1 代表指针a向右移动一个单元,所以a+1

2008-10-11 16:02:00 485 1

转载 虚基类

在《多继承》中讲过的例子中,由类A,类B1和类B2以及类C组成了类继承的层次结构。在该结构中,类C的对象将包含两个类A的子对象。由于类A是派生类C两条继承路径上的一个公共基类,那么这个公共基类将在派生类的对象中产生多个基类子对象。如果要想使这个公共基类在派生类中只产生一个基类子对象,则必须将这个基类设定为虚基类。  虚基类的引入和说明  前面简单地介绍了要引进虚基类的原因。实际上,引进虚基类的真正

2008-10-08 10:47:00 575

转载 sizeof()

        让我们先看一个结构体:  struct S1  {  char c;  int i;  };  问sizeof(s1)等于多少聪明的你开始思考了,char占1个字节,int占4个字节,那么加起来就应该是5。是这样吗你在你机器上试过了吗也许你是对的,但很可能你是错的!VC6中按默认设置得到的结果为8。  Why为什么受伤的总是我  请不要沮丧,我们来好

2008-10-07 13:36:00 514

转载 C/C++语言void及void指针深层探索

         1.概述  许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。  2.void的含义  void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。  void几乎只有“注释”和限制程序的作用,因为从来

2008-09-27 13:21:00 318

转载 虚函数

 虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。  下面是对C++的虚函数这玩意儿的理解。  一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始)  简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进

2008-09-24 17:06:00 449

转载 C/C++内存区分配

 一.在c中分为这几个存储区1.栈 - 有编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。 - 程序结束释放                     

2008-09-24 17:02:00 542 1

转载 malloc与new

       1.malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函

2008-09-24 17:00:00 719 1

转载 回调函数

       Callback Function  什么是回调函数?  回调函数是应用程序提供给Windows系统DLL或其它DLL调用的函数,一般用于截获消息、获取系统信息或处理异步事件。应用程序把回调函数的地址指针告诉DLL,而DLL在适当的时候会调用该函数。回调函数必须遵守事先规定好的参数格式和传递方式,否则DLL一调用它就会引起程序或系统的崩溃。通常情况下,回调函数采用标准Wind

2008-09-24 16:41:00 314

转载 C++虚函数表解析

      C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这

2008-09-24 13:50:00 393

转载 标准强制类型转换:static_cast、dynamic_cast、reinterpret_cast和const_cast

        关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介

2008-09-24 13:44:00 473

转载 c指针的内存详解

指针变量可以进行赋值运算、加减算术运算以及关系运算。         一、赋值运算        1、把一个指针变量的值赋给指向相同类型变量的另一个指针变量。如:int x,*ptr_x,*ptr_y;ptr_x=&x;ptr_y = ptr_x;指针 ptr_x 的值为变量 x 的地址。赋值语句将指针 ptr_x 的值赋给指针 ptr_y ,现在指针  ptr_x 和指针

2008-09-24 13:34:00 671

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除