带参数的宏和函数区别: 宏展开仅仅是字符串的替换,不会对表达式进行计算; 宏在编译之前就被处理掉了,它没有机会参与编译,也不会占用内存。 而函数是一段可以重复使用的代码,会被编译,会给它分配内存,每次调用函数,就是执行这块内存中的代码。 示例1 用函数计算平方值。 #include <stdio.h> int SQ(int y){ return ((y)*(y)); } int main(){ int i=1; while(i<=5){ printf(