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) 收藏 举报
浙公网安备 33010602011771号