1、为什么要用哑元?

一般用于升级,替代老版本,向下兼容

如:

老版本:void foo(int x,int y,double z);

新版本:void foo(int x,int y,double);

内联:http://blog.chinaunix.net/uid-790245-id-2037325.html

http://zhidao.baidu.com/link?url=VdeA7iwm9eW4Jkk6W6JBRr9J5kg1CtuLN1EtWz4b8Cspd9E2661tpydNZzGt9BFu0EVR6J1lLXDymTLh04tyxq

2、为什么要用内联?

和宏函数差不多,c++引入内联用来代替宏函数,宏函数在预编译时不会检查参数类型,返回值等,而内联可以。

内联主要用主要使用空间换时间,来提高执行效率。内部机制就是编译器在编译时把内联函数的代码直接替换,

来减少函数的调用,来减少开销。

3、在什么地方使用内联?

循环或者递归不要使用,一般简单并且经常调用的函数要使用内联,函数代码一般不会超过5行

注意

1、)并不是你在函数前加上一个inline,这个函数就是内联函数的,这个的取决于编译器

2、)递归无法使用内联,因为他不知道该扩张多少次

3、)内联函数时用于实现的关键字,而不是申明的关键字。

例:

正确

void foo(int x,int y);

inline void foo(int x ,int y){  ...... }

错误

inline void foo(int x, int y);

inline void foo(int x,int y){   ......  }