社区
C++ 语言
帖子详情
关于inline函数中能否使用循环、switch
lixiang2202
2013-05-17 02:06:52
在内联函数中,使用了循环、switch语句,编译器还能否将这个函数编译为内联函数,如果不能是为什么?
...全文
415
3
打赏
收藏
关于inline函数中能否使用循环、switch
在内联函数中,使用了循环、switch语句,编译器还能否将这个函数编译为内联函数,如果不能是为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mayer
2013-05-17
打赏
举报
回复
看各个编译器自己的判断了,谁知道他们怎么来衡量这个呢
lixiang2202
2013-05-17
打赏
举报
回复
"函数过于复杂", 到底多复杂才算复杂, 编译器有没有一个标准
穆村拓哉
2013-05-17
打赏
举报
回复
inline 只是对 编译器的建议 函数过于复杂 或者有static的修饰符 编译器就不会对函数进行inline优化
C语言代码优化 方案
1、选择合适的算法和数据结构 2、
使用
尽量小的数据类型 3、减少运算的强度 (1)查表 (2)求余运算 (3)平方运算 (4)用移位实现乘除法运算 (5)避免不必要的整数除法 (6)
使用
增量和减量操作符 (7)
使用
复合赋值表达式 (8)提取公共的子表达式 4、结构体成员的布局 (1)按数据类型的长度排序 (2)把结构体填充成最长类型长度的整倍数 (3)按数据类型的长度排序本地变量 (4)把频繁
使用
的指针型参数拷贝到本地变量 5、
循环
优化 (1)充分分解小的
循环
(2)提取公共部分 (3)延时
函数
(4)while
循环
和do…while
循环
(5)
循环
展开 (6)
循环
嵌套 (7)
Switch
语句
中
根据发生频率来进行case排序 (8)将大的
switch
语句转为嵌套
switch
语句 (9)
循环
转置 (10)公用代码块 (11)提升
循环
的性能 (12)选择好的无限
循环
6、提高CPU的并行性 (1)
使用
并行代码 (2)避免没有必要的读写依赖 7、
循环
不变计算 8、
函数
(1)
Inline
函数
(2)不定义不
使用
的返回值 (3)减少
函数
调用参数 (4)所有
函数
都应该有原型定义 (5)尽可能
使用
常量(const) (6)把本地
函数
声明为静态的(static) 9、采用递归 10、变量 (1)register变量 (2)同时声明多个变量优于单独声明变量 (3)短变量名优于长变量名,应尽量使变量名短一点 (4)在
循环
开始前声明变量 11、
使用
嵌套的if结构
C代码优化方案1、选择合适的算法和数据结构__ 4 2、
使用
尽量小的数据类型__ 5
C代码优化方案 目录 目录__ 2 C代码优化方案__ 4 1、选择合适的算法和数据结构__ 4 2、
使用
尽量小的数据类型__ 5 3、减少运算的强度__ 5 (1)、查表(游戏程序员必修课)_ 5 (2)、求余运算__ 6 (3)、平方运算__ 6 (4)、用移位实现乘除法运算__ 6 (5)、避免不必要的整数除法__ 8 (6)、
使用
增量和减量操作符__ 8 (7)、
使用
复合赋值表达式__ 8 (8)、提取公共的子表达式__ 9 4、结构体成员的布局__ 9 (1)按数据类型的长度排序__ 10 (2)把结构体填充成最长类型长度的整倍数__ 10 (3)按数据类型的长度排序本地变量__ 10 (4)把频繁
使用
的指针型参数拷贝到本地变量__ 11 5、
循环
优化__ 12 (1)、充分分解小的
循环
__ 12 (2)、提取公共部分__ 13 (3)、延时
函数
__ 13 (4)、while
循环
和do…while
循环
__ 14 (6)、
循环
展开__ 14 (6)、
循环
嵌套__ 15 (7)、
Switch
语句
中
根据发生频率来进行case排序__ 16 (8)、将大的
switch
语句转为嵌套
switch
语句__ 17 (9)、
循环
转置__ 18 (10)、公用代码块__ 19 (11)提升
循环
的性能__ 19 (12)、选择好的无限
循环
__ 20 6、提高CPU的并行性__ 21 (1)
使用
并行代码__ 21 (2)避免没有必要的读写依赖__ 22 7、
循环
不变计算__ 23 8、
函数
__ 24 (1)
Inline
函数
__ 24 (2)不定义不
使用
的返回值__ 24
c语言
inline
函数
的
使用
大学在教科书上学习过
inline
函数
,定义为
inline
函数
之后,会省去
函数
调用的开销,直接嵌套汇编代码,取代
函数
调用,提高效率。工作后项目
中
也 很少用到
inline
来定义
函数
,近几天在研读google的google c++ style guide,发现之前自己对
inline
函数
的认识太过肤浅了,这里学习总结一下。 1、
inline
函数
不要超过10行代码,且不能包含
循环
、
switch
、if语句 2、在一个c文件
中
定义的
inline
函数
是不能在其它c文件
中
直接
使用
,google推荐把
inline
函
内联
函数
—— C
中
关键字
inline
用法解析
1、
inline
函数
不要超过10行代码,且不能包含
循环
、
switch
、if语句 2、在一个c文件
中
定义的
inline
函数
是不能在其它c文件
中
直接
使用
,google推荐把
inline
函数
定义在**-inl.h头文件
中
。 3、不要过度
使用
inline
函数
定义,尤其对大
函数
来说 上面三点说明如何正确的
使用
inline
函数
,我以前的时候对
inline
理解不透彻,
使用
inline
的方式不正确,但现在编译器够...
C++基础:
inline
函数
1.
inline
函数
1.1定义:
inline
函数
由
inline
关键字定义,引入
inline
函数
的主要原因是用它替代 C
中
复杂易错不易维护的宏
函数
。 1.2编译器对
inline
函数
的处理办法 编译器在编译阶段完成对
inline
函数
的处理,即对
inline
函数
的调用替换为
函数
的本体。但
inline
关键字对编译器只是一种建议,编译器可以这样去做,也可以不去做。从逻辑上来说,编译器对
inline
函数
的处理步骤一般如下: (1)将
inline
函数
体复制到
inline
..
C++ 语言
64,281
社区成员
250,470
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章