inline!C++内联
来源:互联网 发布:中国 知乎 编辑:程序博客网 时间:2024/05/05 10:28
在android5.0的源代码中
经常可以看到xxxxx-inl.h的文件(C++中好像还有专门的.inl文件) 这些文件都是内联函数/模板的文件 比如Class-inl.h Class_linker-inl.h Dex_file-inl.h Art_method-inh.h(里面尽是一些
template<VerifyObjectFlags kVerifyFlags>
inline void ArtMethod::SetNativeMethod(const void* native_method) {}这样子的函数。。。。
)
我们发现第一个问题,申明内联函数/模板的文件都是.h结尾
什么是内联函数:(百度百科)
联函数是指用inline关键字修饰的函数。
内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。
编译时,类似宏替换,使用函数体替换调用处的函数名。
一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。
内联函数与宏定义的区别:
1.内联函数在运行时可调试,而宏定义不可以;
2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会;
3.内联函数可以访问类的成员变量,宏定义则不能;
4.在类中声明同时定义的成员函数,自动转化为内联函数。
Ps,编译器好像会自动选择一些函数进行内联的优化的O O 并非申明了就一定内联,也不是不申明就不内联O O
好像内联和宏 都是主要为了解决重复定义的问题??
0 0
- c++-inline 内联函数
- 【C++】内联函数,inline
- c++inline内联函数
- c语言之内联inline
- C/C++内联函数(inline)
- C语言内联函数inline
- Visual C Inline ASM 内联汇编
- c语言中的的内联(inline)函数
- c语言中的的内联(inline)函数
- c语言中的的内联(inline)函数
- 【C++】:C++之内联函数(inline)
- c语言中的的内联(inline)函数
- 【C++】 C++中的内联函数inline总结
- c语言中的的内联(inline)函数
- c/c++中的inline(内联函数)
- inline 内联
- 【每日一C之十三】C 语言inline内联函数
- 理解内联函数inline在C 中的用法
- Android开发者上手宝典(一)
- 减少代码嵌套的方法
- Search for a Range
- 有关AvAudioPlayer,AvPlayer的音、视频后台播放的问题
- 智能识别-人工神经网络FANN总结
- inline!C++内联
- v4l2 capture a frame and save to jpeg
- SVN安装Please wait while the installer finishes determining your disk space requirements
- 不要滥用继承
- 安装mysql出现access denied for user 'root@localhost'(using password: YES)
- 安装oracle提示cannot open display: :0.0
- sysfs接口函数到建立_DEVICE_ATTR
- android studio2.0 编译慢的问题
- 【代码】C#生成指定长度的随机数方法