社区
C++ 语言
帖子详情
inline转为static?
中才德创
2009-07-11 10:38:52
<<C++对象模型>>P184上讲:“处理一个inline函数,分析其定义,以决定它的本质的能力。如果因其复杂度,判断不可为inline,它
会被转为一个static函数。
”
大意是说,一个函数申明为inline,最终
编译器
未必将其界定为inline,但为什么说转为
static
?
...全文
47
7
打赏
收藏
inline转为static?
<>P184上讲:“处理一个inline函数,分析其定义,以决定它的本质的能力。如果因其复杂度,判断不可为inline,它会被转为一个static函数。” 大意是说,一个函数申明为inline,最终编译器未必将其界定为inline,但为什么说转为static?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lwlchristy
2009-07-12
打赏
举报
回复
inline函数是将该函数在调用点处展开,因此不适合较大较复杂的函数。使用static可保证在各次调用的一致!
windsting
2009-07-11
打赏
举报
回复
这就涉及到 static 这个关键字的意义了,
在这个情况下, static 的意义就是,这个声明中的符号(这里是个函数)具有文件作用域,
就是说,对于其它的编译单元(.cpp .cc文件),它不可见,
因此即使是在头文件里,也不会引起多次定义的问题。
就这么回事。
要是我没记错的话,即便该函数确定了可以成为 inline 的,
但你对其取地址(或者类似操作)了,还是会声称一份代码,
并且搞成 static的,使其具有文件作用域。
pengzhixi
2009-07-11
打赏
举报
回复
看来我理解得不够深刻啊!!
pengzhixi
2009-07-11
打赏
举报
回复
让所有调用这个函数的地方共享同一段代码
应该是保持一致性吧
Walf_ghoul
2009-07-11
打赏
举报
回复
局限其作用域在本文件内。。。
blh
2009-07-11
打赏
举报
回复
。。。。,原文
baihacker
2009-07-11
打赏
举报
回复
...如果不static,在其它编译单元也可见...结果就重定义了呗...
4.5
Inline
Functions
如果函数因其复杂度,或因其构建问题,被判断不可成为
inline
,它会被
转为
一个
static
函数,并在“被编译模块”内产生对函数的定义。 真正的
inline
函数扩展操作是在调用那一点上。这会带来参数的求值操作(evaluation...
无法将非静态数据成员声明为
inline
示例代码: 好奇怪,上次明明可以运行的居然报错。...E2860 无法将非静态数据成员声明为
inline
C7525 内联变量至少需要 "/std:c++17" 突然发现不支持X86.。。。 在x86下: 切换X64,错误神奇的消失了。。。...
宏函数,内联函数和
static
函数的区别以及应用场景
宏函数,内联函数和
static
函数是c++中不同于普通函数定义的使用其他方式定义的函数,这三种函数有各自的特点和不同的适用场景,我们将在这篇文章中一一说明。先来看三者的定义。 定义 宏函数:一般说来,宏是一种...
this、super、final、
static
、synchronized 关键字可以修饰什么,以及修饰后的作用?
this、super、final、
static
、synchronized 关键字可以修饰什么,以及修饰后的作用?this关键字super关键字final关键字
static
关键字(静态方法--静态变量--静态块--静态内部类)synchronized关键字参考地址 this...
C++ 强制类型转换操作符(
static
_cast、dynamic_cast、const_cast和reinterpret_cast)
1、
static
_cast
static
_cast Operator The expression
static
_cast < type-id > ( expression ) converts expression to the type of type-id based solely on the types present in the expression. ...
C++ 语言
64,635
社区成员
250,963
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章