2013年3月13日
摘要: 老的C语言程序员中有一种倾向,就是把很短的执行频繁的计算写成宏,而不是定义为函数。完成I/O的getchar,做字符测试的isdigit都是得到官方认可的例子。人们这样做最根本的理由就是执行效率:宏可以避免函数调用的开销。实际上,即使是在C语言刚诞生时(那时的机器非常慢,函数调用的开销也特别大),这个论据也是很脆弱的,到今天它就更无足轻重了。有了新型的机器和编译程序,函数宏的缺点就远远超过它能带来的好处。 避免函数宏。在C++里,在线函数更削减了函数宏的用武之地,在Java里根本就没有宏这种东西。即使是在C语言里,它们带来的麻烦也比解决的问题更多。 函数宏最常见的一个严重问题是:如果一个参.. 阅读全文
posted @ 2013-03-13 15:13 tracymdy 阅读(266) 评论(0) 推荐(0) 编辑