gcc悄无声色将静态函数内联了
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,说到内联,可能你还停在十几年前甚至二十多年前的C++教典,c++有内联关键字inline,甚至还用来与c做区分。c99开始c引入inline,gcc比c99早实现对inline支持,vc中c没有关键字
千家信息网最后更新 2025年01月21日gcc悄无声色将静态函数内联了
说到内联,可能你还停在十几年前甚至二十多年前的C++教典,c++有内联关键字inline,甚至还用来与c做区分。c99开始c引入inline,gcc比c99早实现对inline支持,vc中c没有关键字inline,inline只能用于c++,但有另一关键字__inline,但若你要用vc编译gcc下c代码,遇到cl抱怨不识别inline,只要将inline在预编译宏中定义为__inline也就可以了。
gcc编译器属性中还有一个noinline,有了inline为什么还要来一个noinline。没有用inline不就等于noinline了吗。还有always_inline属性。因为在实际中,定义为inline也不一定统统都会被内联,内不内联最后是由gcc编译器决定,只是你的声明会影响它的决定。同样你没有定义为inline,函数就不一定都隔离内联,编译器在优化中通常会为你决定内联了一些函数,不论这个函数体积是大是小。noinline和always_inline属性就是字面意义那样了。
正好近日调试ffmpeg代码,碰上一例子,用来作例证:
ffmpeg是个c代码项目。
avformat_write_header是一个只有十行的函数,就是调用其它函数。
init_muxer是个体积比较大的静态函数,没有定义为内联,却内联到了一个体积很小的函数(avformat_write_header)内。
函数
编译
代码
关键
关键字
属性
编译器
体积
就是
c++
静态
个体
例子
例证
只是
只有
多年
字面
实际
常会
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
图片数据库公司
中国澳门口碑好软件开发报价
软件开发最佳小团队
有关于网络安全的 板报
魔力宝贝自己架设的服务器
软件开发的入门书籍
怀远软件开发技术项目实训中心
服务器 类型
海量数据与高斯数据库
目前网络安全行业现状
cf端游幻神搭配什么服务器
网络安全钥匙是什么怎么查看
服务器 session
网络通信和软件开发
石家庄网络安全专业
直销客户管理软件开发方案
百度服务器有多大
数据库描述正确的是
温州网络技术支持公司
铁科院网络安全研究什么
网络安全2.0等级保护对象
局域网服务器怎么设置路由器
数据库中如何返回年月日
pandas连接数据库创建新表
鸠鸠互联网科技有限公司地址
东软集团的软件开发怎么样
网络通信和软件开发
数据库中名字是什么软件
本地ping不通服务器ip
宝山区品牌软件开发价格表格