#include<bits/stdc++.h>
#define reg register
#define MM 10
#define MAX(x,y)x>y?x:y
#define DOUBLE(x)((x)+(x))//想让double(x)是整体,需要带括号
//宏是描述,不能够递归描述静态物
#define PRINT(n) printf("the value of " #n "is %d\n",n)
#define CAT(n,x) n##x
//带 副作用的宏参数
// 宏不是计算表达式的值并传参,而是直接传递过去这个东东本身,传地址其实也只是传地址值!
// 宏是无类型的(也就是宏是重载的),而且不需要进行跳转(调用和返回),所以小型计算宏更快
#define MALLOC(num,type) (type*)malloc(num*sizeof(type)) //这个只有宏才能做到
int main()
{
int a= MAX(5,6);
printf("%d\n",a);
PRINT(a);
PRINT(a+a);
if(5.1>6) printf("yes");
else printf("no");
return 0;
}
//宏是没有栈帧的,是直接替换的
预处理笔记
最新推荐文章于 2024-07-14 16:16:30 发布