1. 宏在编译时在调用该宏的地方展开,最终嵌入到调用的代码中;函数在编译阶段在程序中会有固定代码段(非inline函数),执行到调用函数的地方会调转到该函数段继续执行。
2. 在程序代码中多次使用宏,则最终代码会有多个该宏代码的多次拷贝;函数(非inline函数)则在代码中只有一个代码段,多次调用只会调转到该代码段执行。
3. 宏不会产生函数调用,执行效率高;函数会产生函数调用,效率低。
1. 宏在编译时在调用该宏的地方展开,最终嵌入到调用的代码中;函数在编译阶段在程序中会有固定代码段(非inline函数),执行到调用函数的地方会调转到该函数段继续执行。
2. 在程序代码中多次使用宏,则最终代码会有多个该宏代码的多次拷贝;函数(非inline函数)则在代码中只有一个代码段,多次调用只会调转到该代码段执行。
3. 宏不会产生函数调用,执行效率高;函数会产生函数调用,效率低。