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