/*
什么是宏
1)用一个字符串表示有意义的常量或常量表达式
2)先替换,再代值
3)宏可以嵌套定义
4)定义宏
A:无参宏:
#define 宏名 常量or常量表达式
#define PI 3.14
B:有参宏:
#define 宏名(参数) 表达式
#define FUN(x,y) x,y
*/
#include<stdio.h>
#define M 2
#define N M+M
void main()
{
int k1, k2;
k1 = M * N;//2*2+2
k2 = N * N;//2+2*2+2
printf("k1=%d,k2=%d", k1, k2);//6 8
}
#include<stdio.h>
#define F1(x,y) x*y
#define F2(x,y) F1(x+y,x-y)*F1(x-y,x+y)
void main()
{
int a = 1, b = 2, k1,k2;
k1 = F1(a + b, a - b);//a+b*a-b=1+2*1-2
k2 = F2(a + b, a - b);//F1(a+b+a-b,a+b-a-b)*F1(a+b-a-b,a+b+a-b)
printf("k1=%d\nk2=%d", k1, k2);//1 1
}