摘要: 一、定义函数指针typedefvoid(*F)(int); voidprint1(intx){ cout<<x; }intmain(){ F a; a = print1; (*a)(20); }二、简单类型替换typedefintI; intmain(){ I a; a = 10; //a = "a";//false cout<<a; }三、定义数组类型typedefintA[3]; intmain(){ A b = {3,4,5}; cout<<sizeof(b); }总结问题:typedef int[8] intarr8;//erro 阅读全文
posted @ 2012-07-22 10:43 bizhu 阅读(323) 评论(0) 推荐(0) 编辑
摘要: mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。 下面是一个小例子:class ClxTest{public: void Output() const;};void ClxTest:... 阅读全文
posted @ 2012-07-22 10:38 bizhu 阅读(266) 评论(0) 推荐(0) 编辑
摘要: ①一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。(可以理解为每次使用该变量时都要从内存中读取,而不是从寄存器中读取)关于优化:在单任务下,在一个函数体内,如果两次读取变量间语句没有对变量的值进行修改,那么编译器就会进行优化。由于寄存器速度快于RAM,所以一般会减少存取外部RAM。②该变量的适用情况:1)并行设备的硬件寄存器(如:状态寄存器)2)一个中断服务子程序中会访问到的非自动变量(Non-automatic variables 阅读全文
posted @ 2012-07-22 10:24 bizhu 阅读(723) 评论(0) 推荐(0) 编辑