交换两个整数的值时可以不用第三个参数。
如a=11,b=9.以下是二进制
a=a^b=1011^1001=0010;
b=b^a=1001^0010=1011;
a=a^b=0010^1011=1001;
这样一来a=9,b=13了。
如果用a=a+b;b=a-b;a=a-b;缺点是:如果a、b都是比较大的两个数,a=a+b会越界。
如何判断一段程序是由C 编译程序还是由C++编译程序编译的?
#ifdef _cplusplus /*判断是否用C++编译器?*/
#define USING_C 0 /*是用C编译器*/
#else
#define USING_C 1 /*是用C++编译器*/
#endif
#include<stdio.h>
main()
{
if(USING_C) printf("C++\n");
else printf("C\n");
}
c++编译时定义了_cplusplus
c编译时定义了_STDC_