宏和函数之间有一定的相似之处,有些功能两个都可以实现,但是两者还是不同的
1) 函数调用时,先求实参表达式的值,再代入形参.而带参的宏只是进行字符的替换
2) 函数调用是在程序运行时处理的,分配临时的内存单元,而宏的展开是在编译时进行的, 展 开时并不分配内存单元,不进行值的传递处理,也没有"返回值"
3) 函数中的形参和实参类型要一致,不一致要类型转换, 而宏不存在类型问题,宏名无类型,它的类型也无类型,只是一个符号代表,展开时代入指定的字符即可
4)调用函数只可得一个返回值,而用宏则可以设法得到几个结果