不用临时变量交换两个变量的值 大家对于异或(XOR)的如下性质应该很熟悉:(X XOR Y) XOR Y = X(X XOR Y) XOR X = Y 我们可以利用异或(XOR)的这个性质来实现不用临时变量交换两个变量的值。具体代码很简单:void Swap(int& x, int& y){ x = x ^ y; y = x ^ y; x = x ^ y
让程序在崩溃时体面的退出 让程序在崩溃时体面的退出之SEH SEH的全称是Structured Exception Handling,是Windows操作系统提供的一种异常处理方式。SEH是属于操作系统的特性,不为特定语言设计,从它的名字就能看出它是一种结构化的异常处理方式。SEH包括了2个部分:终止处理__try/__finally和异常处理__try/__except,下面分别进行介绍。
按位与、或、异或等运算方法 按位与运算符(&)参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1; 即:两位同时为“1”,结果才为“1”,否则为0例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3&5的值得1。 另,负数按补码形式参加按位与运算。“与运算
避免 Static Initialization Order Fiasco (SIOF) Static Initialization Order FiascoStatic Initialization Order Fiasco (SIOF),我也是最近才知道了这个说法,因为在开发程序的时候被它bug了:对于一个static变量,不管它是全局的或者是类的成员变量,访问它的时候不一定总是成功的,甚至会造成程序crash,因为不能保证它在被访问时已经被初始化了(跟初始化的顺序有关,所以称
替换^M字符 替换^M字符替换^M字符在Linux下使用vi来查看一些在Windows下创建的文本文件,有时会发现在行尾有一些“^M”。有几种方法可以处理。1.使用dos2unix命令。一般的分发版本中都带有这个小工具(如果没有可以根据下面的连接去下载),使用起来很方便:$ dos2unix myfile.txt上面的命令会去掉行尾的^M。 2.使用vi的替换功能。启动vi,