分类: 嵌入式
2015-01-30 15:51:30
首先要清楚几个概念: 1. 内联是对宏的补充,不是替代。(参考5) 2. 程序员使用内联而不使用宏,与你说的相反,正好是因为他希望内联失败的存在。 3. 如果写代码的人不希望内联失败,那么他应该使用宏,而不是内联。 4. 内联失败的时候,是编译器觉得不内联效果更好,性能更强。 5. 程序员使用内联,是因为他不知道是用函数效率高,还是宏效率高,于是使用内联把这件事交给编译器去做。 6. 顺便说下内联函数里面有分支,很常见。宏仅仅是文本串替换,而且再稍微复杂的情况下有些行为是未定义的,所以会看到很多书中是不提倡用宏的