| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2249 人关注过本帖
标题:内联函数的多次定义的疑问
只看楼主 加入收藏
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
结帖率:95.65%
收藏
已结贴  问题点数:100 回复次数:8 
内联函数的多次定义的疑问
内联函数可能要在程序中定义不止一次。
这句话看不懂,函数怎样定义一次以上?(inline和noninline)谁举个例说明下,谢谢了!
搜索更多相关主题的帖子: 内联 函数 定义 疑问 
2010-08-07 10:26
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:0 
lampeter123你知道不?知道的话帮忙说下……

迭代的是人,递归的是神。
2010-08-07 10:56
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:10 
没这末复杂吧,inline只是替换宏的简单函数而已(而且能否形成替换,决定权还在编译器)。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-08-07 11:16
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:0 
我是想知道一个函数什么样能定义多次,还是内联函数有可能定义多次,普通的函数不行,声明和定义放在不同文件是情况下,要什么弄?

迭代的是人,递归的是神。
2010-08-07 11:20
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:45 
inline函数一般是static 函数,那么在不同的文件中不是就可以有不同的具体实现形式了

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-08-07 15:27
yxwsbobo
Rank: 5Rank: 5
等 级:职业侠客
帖 子:345
专家分:306
注 册:2007-10-29
收藏
得分:45 
你可以在

a.h

里定义

inline int fun()
{
    return 1;
}


在 b.h

里定义

inline int fun()
{
    return 100;
}

因为inline函数编译时需要直接插入函数代码,所以不能使extern的,每个编译模块(cpp源文件)中必须包含其定义代码(不是声明)
所以"内联函数有可能在程序中定义不止一次,"就是指在每个调用inline函数的源文件中都要有inline的定义,所以把inline定义放在头文件中,需要时include就可以了。


搜到的,说的比较清楚了

How are you 怎么是你?
How old are you   怎么老是你?
2010-08-07 16:54
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:0 
觉得是作用域的问题,就是名字一样而已,但是不在一个作用域里,然后有各自的定义,先这么理解的,谢谢几位了

迭代的是人,递归的是神。
2010-08-07 18:08
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
noninline 不可能有这种关键字吧……

内联函数可能要在程序中定义不止一次,这句话在哪看见的?真是糟糕的实践……
2010-08-07 22:48
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:0 
回复 8楼 pangding
noninline不是关键字,我自己写的,与inline互补。
原话在C++ primer 中文版 第四版 222页。我有点断章取义。

迭代的是人,递归的是神。
2010-08-08 09:45
快速回复:内联函数的多次定义的疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020689 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved