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

来源:互联网 发布:linux nfsnobody 编辑:程序博客网 时间:2024/05/16 05:40





#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>/* 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));    // 0printf("%d\n",OffSet(struct str,f));    // 4printf("%d\n",OffSet(struct str,d));    // 8printf("%d\n",OffSet(struct str,c));    // 16return 0;}


1 0
原创粉丝点击