2012-08-08 16:07
⁄ 工业·编程
⁄ 共 848字
回调在C语言中是通过函数指针来实现的,通过将回调函数的地址传给被调函数从而实现回调。因此,要实现回调,必须首先定义函数指针,请看下面的例子:
void Func(char *s);// 函数原型 void (*pFunc) (char *);//函数指针
可以看出,函数的定义和函数指针的定义非常类似。
一般的化,为了简化函数指针类型的变量定义,提高程序的可读性,我们需要把函数指针类型...
c++阅读全文
2012-08-08 15:49
⁄ 工业·编程
⁄ 共 868字
1,防止一个头文件被重复包含 #ifndef BODYDEF_H #define BODYDEF_H //头文件内容 #endif
2,得到指定地址上的一个字节或字 #define MEM_B( x ) ( *( (byte *) (x) ) ) #define MEM_W( x ) ( *( (word *) (x) ) )
3,得到一个field在结构体(struct)中的偏移量 #define FPOS( type, field ) ( (dword) &(( type *) 0)-> field )
4,得到一个结构...
c++阅读全文
2012-08-08 15:37
⁄ 工业·编程
⁄ 共 2372字
在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。
1. do...while(0)消除goto语句
通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当...
c++阅读全文
2012-08-08 15:35
⁄ 工业·编程
⁄ 共 1231字
一、数据类型
数据类型是按照规定形式表示数据的一种方式,不同的数据类型占用空间也不同。
对于数据类型,还应该明白以下几点
1、整型数据 int可以有修饰符 short、long、long long三种,后面的int可省略,默认的整形数据常量为int(#add,共4种,int、short int、long int、long long int)。
2、整型数据 int可以是10进制(默认的),16(0X开头)进制,8进制(0开头)三种。
例如: 8表示十进制整型8 08表示8进制整...
c++阅读全文
2012-08-08 15:30
⁄ 工业·编程
⁄ 共 1345字
虚拟继承在一般的应用中很少用到,所以也往往被忽视,这也主要是因为在C++中,多重继承是不推荐的,而一旦离开了多重继承,虚拟继承就完全失去了存在的必要.(因为这样只会降低效率和占用更多的空间,实在是一无是处)。
以下面的一个例子为例: #include <iostream.h> #include <memory.h> class CA { int k; //为了便于说明后面的内存结构特别添加 ...
c++阅读全文
2012-08-08 14:55
⁄ 工业·编程
⁄ 共 1540字
如果嵌套类型和其外部类型之间的关系需要成员可访问性语义,需要使用C++嵌套类,嵌套类型不应针对其声明类型以外的类型执行任务,而C++局部类允许类、结构和接口被分成多个小块儿并存储在不同的源文件中,这样的实现很容易开发和维护。
C++局部类: 在一个函数体内定义的类称为局部类。局部类中只能使用它的外围作用域中的对象和函数进行联系,因为外围作用域中的变量与该局部类的对...
c++阅读全文
2012-08-08 14:38
⁄ 工业·编程
⁄ 共 915字
在某些状况下,类内成员变量需要动态开辟堆内存,如果实行位拷贝,也就是把对象里的值完全复制给另一个对象,如A=B。这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量也指向同一块内存。这就出现了问题:当B把内存释放了(如:析构),这时A内的指针就是野指针了,出现运行错误。
深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的...
c++阅读全文
2012-08-08 14:36
⁄ 工业·编程
⁄ 共 1089字
对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=88; int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。
#include <iostream> using namespace std;
class CExample { private: int a; public: CExample(int b) { a=b;} &...
c++阅读全文
2012-08-08 14:28
⁄ 工业·编程
⁄ 共 1129字
1. 枚举的定义枚举类型定义的一般形式为:
enum 枚举名{ 枚举值表 };
在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。
例如:
该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。
2. 枚举变量的说明
如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。
设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式...
c++阅读全文
2012-08-08 14:26
⁄ 工业·编程
⁄ 共 2399字
一、预备知识—程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分:
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)— 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在...
c++阅读全文