先说共同点:就是都不会引起函数的调用,都是在调用函数的位置将函数题展开. 一般来说,inline函数是不能递归的,不知道宏可不可以?
关于不同点就比较多:
1。宏是在编译器预处理的时候将函数展开的;而inline函数则是在编译的时候展开的;
2。使用宏很容易产生错误,为了避免这些,在定义的时候我们是将里面每个参数括起来,最后还要一起再括起来; 而inline函数则没有必要;
3。宏的参数检查比较弱,一个函数可能实用于int类型,也有可能实用于float类型;而inline函数则有较强的类型检查,实用于int就只能是int,如float想用的话,就要靠template了
宏和inline函数有什么区别
最新推荐文章于 2023-05-05 13:10:51 发布