07 c++中的内联函数inline
2024-10-21 04:02:10
问题描述:类中成员函数缺省默认是内联的,如果在类定义时就在类内给出函数定义,那当然最好。如果在类中未给出成员函数定义,而又想内联该函数的话,那在类外要加上 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.内联函数最好放在头文件中。
最新文章
- 整块div设置为超链接进行界面跳转
- listview优化技术
- [Android-2A] -仿IOS微信滑动删除_SwipeListview左滑删除例子
- JSP环境配置
- java集合类深入分析之Queue篇(Q,DQ)
- 用CSS实现文本框尖角
- 浅析php curl_multi_*系列函数进行批量http请求
- P3371 【模板】单源最短路径(弱化版)
- web基础要点记录
- android spf 存储 集合(实体等)
- scrum第二次冲刺
- CentOS下安装Git
- [Ubuntu] Git可视化比较工具 P4Merge 的安装/配置及使用
- [__NSArrayM insertObject:atIndex:]: object cannot be nil&#39;
- KinectFusion测试
- HDU2036:改革春风吹满地
- Android使用bindService作为中间人对象开启服务
- js-ES6学习笔记-对象的扩展
- FSM Code Generator
- OpenCV学习代码记录——canny边缘检测
热门文章
- 转载:Python Web开发最难懂的WSGI协议,到底包含哪些内容?
- 将本机电脑作为自己的网站服务器--基于XAMPP在本地建立wordPress网站
- kubelet tls
- Linux中的13个基本Cat命令示例
- 16.Python略有小成(内置模块Ⅱ)
- Python3实现一个简单的tcp客户端,用于测试服务端端口开放情况
- Linux忘记root密码操作方法
- 【LEETCODE】49、数组分类,简单级别,题目:566,1089
- H5新特性 本地存储---cookie localStorage sessionStorage
- python爬取b站排行榜视频信息