从理论上讲 不会出现这样的情况 因为 宏定义在预编译 已经把宏替换成 定义的值 编译出的可执行程序大小应该是相同的 所以 运行的可执行程序不应该有区别 一样的不管是表达式 还是值应该一样被替换的 你找本 编译原理的书 看看的
具体我也不是很清楚,但是宏定义就是单纯的替换,编译器不用考虑太多,但是函数的话就涉及到返回值等问题,变量的类型转换什么 的。
宏定义是已经预编译好的 当然会快~ 只是会占用额外空间。
有可能编译器还作了其它处理呢