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解决函数名字匹配问题;

原文地址:https://www.cnblogs.com/sakurapiggy/p/13181948.html