c语言 inline函数的总结
来源:互联网 发布:网络端游排行榜 编辑:程序博客网 时间:2024/04/29 14:35
转自 http://blog.csdn.net/yuan1125/article/details/6225993
1 inline只是个编译器建议,编译器不一定非得展开Inline函数。
例如:
Inline函数地址引用
inline在递归函数中使用
2 inline必须用于函数定义,对于函数声明,inline不起作用
例如:
inline max(int,int); //没有Inline作用
只有 inline max(int a,int b)
{
......
}
才有用。
3 inline定义的函数 和 宏定义一样,只在本地文件可见。所以建议Inline定义的函数放在头文件中
4 gcc中的Inline函数法则
1. static inline --->编译器本地展开。
2. inline--->本地展开,外地为Inline函数生成独立的汇编代码
3. extern inline--->不会生成独立的汇编代码。
特性1.即使是通过指针应用或者是递归调用也不会让编译器为它生成汇编码,在这种时候对此函数的调用会被处理成一个外部引用
特性2.extern inline的函数允许和外部函数重名,即在存在一个外部定义的全局库函数的情况下,再定义一个同名的extern inline函数也是合法的。
extern inline的用处:
在一个库函数的c文件内,定义一个普通版本的库函数foo:
mylib.c:
void foo()
{
...;
}
然后再在其头文件内,定义(注意不是声明!)一个实现相同的exterin inline的版本:
mylib.h:
extern inline foo()
{
...;
}
那么在别的文件要使用这个库函数的时候,只要include了mylib.h,在能内联展开的地方,编译器都会使用头文件内extern inline的版本来展开。
而在无法展开的时候(函数指针引用等情况),编译器就会引用mylib.c中的那个独立编译的普通版本。
即看起来似乎是个可以在外部被内联的函数一样,所以这应该是gcc的extern inline意义的由来。
- c语言 inline函数的总结
- c语言 inline函数的总结
- c语言 inline函数的总结
- C语言inline函数
- C语言inline函数
- c语言中的的内联(inline)函数
- c语言中的的内联(inline)函数
- C语言inline函数的使用方法
- C语言inline函数的使用方法
- c语言中的的内联(inline)函数
- C语言的Static Inline函数
- c语言中的的内联(inline)函数
- c语言中的的内联(inline)函数
- C语言的inline
- C语言的inline
- C语言的inline
- C语言的inline
- C语言的inline
- jQuery 隐藏和显示 input 默认值
- 结构体对齐
- iphone:使用NSURLConnection下载网络图片
- 【Tiny6410 And Linux】—(1.1)—kobject——原理
- 2011网购市场规模超8000亿元 服装网购表现突出
- c语言 inline函数的总结
- 人类已经无法阻止苹果了——吐槽PC厂商
- 开Lotus notes后,单击“邮件”,打不开邮箱,弹出“远程服务器不是已知的TCP/IP”报错
- Android OpenGL ES 简明开发教程七:材质渲染
- Hibernate与JDBC的优缺点
- vc调试
- vsftpd被动模式及对应iptables配置
- 股票研究股票图表
- wildcard linux