文章链接:

问题描述:类中成员函数缺省默认是内联的,如果在类定义时就在类内给出函数定义,那当然最好。如果在类中未给出成员函数定义,而又想内联该函数的话,那在类外要加上 inline,否则就认为不是内联的。内联函数的inline要加在函数前面,不可以加在声明前面。

 class A
{
public:void Foo(int x, int y) { } // 自动地成为内联函数
}
//正确写法:
// 头文件
class A
{
public:
void Foo(int x, int y);
}
// 定义文件
inline void A::Foo(int x, int y){} //错误写法:
inline void Foo(int x, int y); // inline 仅与函数声明放在一起
void Foo(int x, int y){}

1. 内联函数作用:为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表示为内联函数。

例子:

 #include <stdio.h>
//函数定义为inline即:内联函数
inline char* dbtest(int a) {
return (i % > ) ? "奇" : "偶";
} int main()
{
int i = ;
for (i=; i < ; i++) {
printf("i:%d 奇偶性:%s /n", i, dbtest(i));
}
}

内联函数是在程序编译的时候替换的方式加入程序中的。

2. 内联函数使用的限制:

inline 的使用是有所限制的,inline 只适合涵数体内代码简单的涵数使用,不能包含复杂的结构控制语句例如 while、switch,并且不能内联函数本身不能是直接递归函数(即,自己内部还调用自己的函数)。

代码较长,内部出现循环不适合使用内联函数。

3. 内联函数只是一个对编译器的建议,具体实不实现看编译器认为函数复不复杂。

4.内联函数最好放在头文件中。

最新文章

  1. 整块div设置为超链接进行界面跳转
  2. listview优化技术
  3. [Android-2A] -仿IOS微信滑动删除_SwipeListview左滑删除例子
  4. JSP环境配置
  5. java集合类深入分析之Queue篇(Q,DQ)
  6. 用CSS实现文本框尖角
  7. 浅析php curl_multi_*系列函数进行批量http请求
  8. P3371 【模板】单源最短路径(弱化版)
  9. web基础要点记录
  10. android spf 存储 集合(实体等)
  11. scrum第二次冲刺
  12. CentOS下安装Git
  13. [Ubuntu] Git可视化比较工具 P4Merge 的安装/配置及使用
  14. [__NSArrayM insertObject:atIndex:]: object cannot be nil&#39;
  15. KinectFusion测试
  16. HDU2036:改革春风吹满地
  17. Android使用bindService作为中间人对象开启服务
  18. js-ES6学习笔记-对象的扩展
  19. FSM Code Generator
  20. OpenCV学习代码记录——canny边缘检测

热门文章

  1. 转载:Python Web开发最难懂的WSGI协议,到底包含哪些内容?
  2. 将本机电脑作为自己的网站服务器--基于XAMPP在本地建立wordPress网站
  3. kubelet tls
  4. Linux中的13个基本Cat命令示例
  5. 16.Python略有小成(内置模块Ⅱ)
  6. Python3实现一个简单的tcp客户端,用于测试服务端端口开放情况
  7. Linux忘记root密码操作方法
  8. 【LEETCODE】49、数组分类,简单级别,题目:566,1089
  9. H5新特性 本地存储---cookie localStorage sessionStorage
  10. python爬取b站排行榜视频信息