关于inline函数中能否使用循环、switch

lixiang2202 2013-05-17 02:06:52

在内联函数中,使用了循环、switch语句,编译器还能否将这个函数编译为内联函数,如果不能是为什么?
...全文
415 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayer 2013-05-17
  • 打赏
  • 举报
回复
看各个编译器自己的判断了,谁知道他们怎么来衡量这个呢
lixiang2202 2013-05-17
  • 打赏
  • 举报
回复
"函数过于复杂", 到底多复杂才算复杂, 编译器有没有一个标准
穆村拓哉 2013-05-17
  • 打赏
  • 举报
回复
inline 只是对 编译器的建议 函数过于复杂 或者有static的修饰符 编译器就不会对函数进行inline优化
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代码优化方案 目录 目录__ 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

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧