使用 宏定义 实现的高级算法





#include 
#include 
#include 
#include 

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
#define SOR(x) (x)*(x)  //求平方

#define Max(a,b) (((a)-(b)) == fabs((a)-(b)))?(a):(b)   //求最大值
#define Min(a,b) (((a)-(b)) == fabs((a)-(b)))?(b):(a)   //求最小值
#define ISUNSIGNED(a) ((a > 0)&&(~a > 0))               //判定变量是否是无符号的
#define ISUNSIGNED_TYPE(type) ((type)(0-1) > 0)         //判定类型是否是无符号的

#define MySize(value) ((char *)((&value) + 1) - (char *)(&value))     //   求类型占用的空间大小

#define OffSet(type,field) ((size_t)&(((type*)0)->field))      //  求结构体中的偏移
struct str
{
	int a;
	float f;
	double d;
	char c;
};
int main(int argc, char *argv[])
 {

	printf("%d\n",OffSet(struct str,a));    // 0
	printf("%d\n",OffSet(struct str,f));    // 4
	printf("%d\n",OffSet(struct str,d));    // 8
	printf("%d\n",OffSet(struct str,c));    // 16

	return 0;
}


你可能感兴趣的:(C,plus,plus)