C语言学习笔记_小技巧
C语言学习笔记_小技巧
快速判断数X是否是2的N次方
if !(X&(X-1)) {
cout<<"yes"<<endl;
}
利用位运算实现两个整数的加法
int add(int a, int b) {
if (b==0) return a;
int sum, carry;
sum = a^b;
carry = (a&b)<<1;
return add(sum, carry);
}
交换a b两数的宏
#include <string.h>
#include <stdio.h>
#define SWAP(a, b)\
{
char tempBuf[10];
memcpy(tempBuf, &a, sizeof(a));
memcpy(&a, &b, sizeof(b));
memcpy(&, tempBuf, sizeof(b));
}
在C++程序中调用被C编译后的函数,为什么要加extern C
C++语言支持函数重载,而C语言不支持,函数被C++编译后在库中的名字和C语言不同,C语言是 _ func,而C++是 _ func_ int之类的,因此C++编译器通过指定符号extern C解决函数名字匹配问题;