06 2013 档案
摘要:结构体作为map的key或放入set中,需要重载运算符,示例如下:#include #include #include using namespace std;class Array{private: int m_i32Num1; int m_i32Num2;public: Array(int i32Num1, int i32Num2); bool operator >(const Array& other) const;};Array::Array(int i32Num1, int i32Num2){ m_i32Num1 = i32Num1; m_i32Num2 = i32Nu
阅读全文
摘要:自旋锁 ------------------------------------------------------ 自旋锁是专为防止多处理器并发而引入的一种锁,它在内核中大量应用于中断处理等部分(对于单处理器来说,防止中断处理中的并发可简单采用关闭中断的方式,不需要自旋锁)。 自旋锁最多只能被一个内核任务持有,如果一个内核任务试图请求一个已被争用(已经被持有)的自旋锁,那么这个任务就会一直进行忙循环——旋转——等待锁重新可用。要是锁未被争用,请求它的内核任务便能立刻得到它并且继续进行。自旋锁可以在任何时刻防止多于一个的内核任务同时进入临界区,因此这种锁可有效地避免多处理器上并发运行的内...
阅读全文
摘要:隐式类型转换:(算术转换) 转换规则是小类型总是被提升成大类型以防止精度损失,这些转换由编译器自动完成无需程序员介入。1、在混合类型的算术表达式中在这种情况下最宽的数据类型成为目标转换类型这也被称为算术转换2、 用一种类型的表达式赋值给另一种类型的对象在这种情况下目标转换类型是被赋值对象的类型3、 把一个表达式传递给一个函数调用表达式的类型与形式参数的类型不相同在这种情况下目标转换类型是形式参数的类型4、从一个函数返回一个表达式表达式的类型与返回类型不相同在这种情况下目标转换类型是函数的返回类型算术转换算术转换保证了二元操作符如加法或乘法的两个操作数被提升为共同的类型然后再用它表示结果的类型两
阅读全文