inline(内联函数)

 1 /* inline 函数(内联函数) */
 2 
 3 
 4 #include<iostream>
 5 
 6 #define GETX3(N) N*N*N// 替换
 7 
 8 // inline 只是对于编译器的建议
 9 // 一般情况下我们对内联函数做如下的限制:
10     /*
11         (1) 不能有递归
12         (2) 不能包含静态数据
13         (3) 不能包含循环
14         (4) 不能包含switch和goto语句
15         (5) 不能包含数组
16 // 若一个内联函数定义不满足以上限制,则编译系统把它当着普通函数        
17     
18     
19     */
20 inline int getX3(int x);// 内联函数内部展开
21 
22 inline int getX3(int x)// 函数  inline可以保证类型安全
23 {
24     return x*x*x;
25 }
26 
27 template <class T>
28 inline T getX2(T x)// C++类型不匹配会出错 不是单纯的替换
29 {
30     return x*x;
31 }
32 
33 
34 void main()
35 {
36     std::cout << GET3(1+2) << std::endl;// 1+2*1+2*1+2
37 
38     std::cout << GET3((1+2)) << std::endl;
39 
40     std::cout << GET3((2.0+2)) << std::endl;
41 }

 

posted on 2015-05-30 21:09  Dragon-wuxl  阅读(177)  评论(0)    收藏  举报

导航