是不是所以有成员函数,都可以改成内联函数??

文俊2014 2013-03-06 04:10:18
在<C++编程思想>---内联函数这一章P208.看到一句话:
"有时创建的类都是内联函数时,可以把整个类放在头文件中,在程序的开发中,这是有益的,尽管编译时可能会花费更多的编译时间,一旦程序稳定后,就可以返回去,在恰当的地方把函数改成非成员函数"..

这里是不是可以这样理解:
当程序到达发布阶段时,可以尽可能的把成员函数改成非成员函数.这样在程序运行时,会提执行效率.
这种方法,是不是对于嵌入式的开发平台特别有效?

求大神解答下..
...全文
363 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
文俊2014 2013-03-06
  • 打赏
  • 举报
回复
引用 3 楼 crazyleeyang 的回复:
inline只适合函数体内代码简单的函数使用,不能包含复杂的结构控制语句例如while switch,并且不能内联函数本身不能是直接递归函数(自己内部还调用自己的函数);
是的.. 后面还有介绍到了. 除了递归,还有任何种类的循环,显式/隐式取函数地址.都不能作为内联函数..
文俊2014 2013-03-06
  • 打赏
  • 举报
回复
引用 1 楼 studyCBC 的回复:
不是 此处省略15字
为啥不是?
文俊2014 2013-03-06
  • 打赏
  • 举报
回复
引用 2 楼 derekrose 的回复:
有时创建的类都是内联函数时 这是什么意思?应该有前文吧,类都是inline?还是说类里面没有非inline函数?
sorry.. 掉了两字,应该是: "有时创建的类都是内联成员函数时,可以把整个类放在头文件中,在程序的开发中,这是有益的,尽管编译时可能会花费更多的编译时间,一旦程序稳定后,就可以返回去,在恰当的地方把函数改成非成员函数"..
snake_xiongyang 2013-03-06
  • 打赏
  • 举报
回复
楼上的有创意......
zhao4zhong250 2013-03-06
  • 打赏
  • 举报
回复
这辈子不看内存地址和内存值;只画链表、指针示意图,画堆栈示意图,画各种示意图,甚至自己没画过而只看过书上的图……能从本质上理解指针、理解函数参数传递吗?本人深表怀疑! 这辈子不种麦不收麦不将麦粒拿去磨面;只吃馒头、吃面条、吃面包、……甚至从没看过别人怎么蒸馒头,压面条,烤面包,……能从本质上理解面粉、理解面食吗?本人深表怀疑!!
starytx 2013-03-06
  • 打赏
  • 举报
回复
内联 inline 对于编译器来说只是一个建议,编译器可以选择忽略这个建议。 一般来说,内联机制适用于优化小的、只有几行的而且经常被调用的函数。内联函数应该在头文件中定义,因为内联函数的定义对编译器必须是可见的,以便编译器能够在调用点内联展开该函数的代码。此时仅有函数原型是不够的。
palm008 2013-03-06
  • 打赏
  • 举报
回复
体积小的函数适合内联函数,否则不适合,没有什么特别明显的界限来区分
Athenacle_ 2013-03-06
  • 打赏
  • 举报
回复

7.1.2
A function defined within a class definition is an inline function. The inline specifier shall not appear
on a block scope function declaration.79)
在类定义中定义的函数带有inline属性,但无inline关键字。
C少 2013-03-06
  • 打赏
  • 举报
回复
引用 3 楼 crazyleeyang 的回复:
inline只适合函数体内代码简单的函数使用,不能包含复杂的结构控制语句例如while switch,并且不能内联函数本身不能是直接递归函数(自己内部还调用自己的函数);
正解,你得理解inline函数的初衷.
crazyleeyang 2013-03-06
  • 打赏
  • 举报
回复
inline只适合函数体内代码简单的函数使用,不能包含复杂的结构控制语句例如while switch,并且不能内联函数本身不能是直接递归函数(自己内部还调用自己的函数);
derekrose 2013-03-06
  • 打赏
  • 举报
回复
有时创建的类都是内联函数时 这是什么意思?应该有前文吧,类都是inline?还是说类里面没有非inline函数?
七擒关羽 2013-03-06
  • 打赏
  • 举报
回复
不是 此处省略15字

64,439

社区成员

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

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