/宏和函数的区别:
宏只是仅仅进行文本的替换,宏在编译前就被替换掉了,不占用内存,不对表达式进行计算
函数是一段可重复使用的代码,会被编译,会给它申请内存空间,每次调用,其实就是执行的这块内存空间的代码/
#include <stdio.h>
#define SQ(x) (x) * (x)
int fun(int x)
{
return x * x;
}
int main()
{
int i = 1;
while (i <= 3)
{
printf("%d\n", fun(i++)); // 1,4,9
printf("%d\n", SQ(i++)); // 2,12
}
printf("%d\n", i);
return 0;
}