免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1689 | 回复: 5
打印 上一主题 下一主题

[C++] 函数的static 和 inline 两个modifier 在声明的时候加还是定义的时候加? [复制链接]

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015元宵节徽章
日期:2015-03-06 15:52:30
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-02-16 16:56 |只看该作者 |倒序浏览
一直没搞明白函数的 static 和 inline 两个modifier 在声明的时候加还是定义的时候加?
因为平时写代码的时候基本这两种函数都是直接定义了,没有把声明和定义分开。

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
2 [报告]
发表于 2016-02-17 08:44 |只看该作者
inline 难道不是声明和定义在一起?
static 可以用在很多地方,不知道你说的是哪一处?如果是修饰普通函数,定义处必加。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015元宵节徽章
日期:2015-03-06 15:52:30
3 [报告]
发表于 2016-02-17 15:11 |只看该作者
回复 2# bruceteen


自己用g++试了下



  1. inline fun();

  2. int main() { return fun(); }

  3. inline fun() {
  4.     return 2;
  5. }

复制代码
上面代码两个inline的地方只要有一个地方写 inline 函数fun就会被内联。

   

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015元宵节徽章
日期:2015-03-06 15:52:30
4 [报告]
发表于 2016-02-17 15:22 |只看该作者
本帖最后由 neodreamerus 于 2016-02-17 15:23 编辑

回复 2# bruceteen


   我也用g++测试了一下static关键字,必须在声明处加,不管是普通的static函数,还是类的static函数还是 static 变量

修饰普通函数时定义处可加可不加。

论坛徽章:
0
5 [报告]
发表于 2016-02-18 10:14 |只看该作者
static 声明和定义都要加

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015元宵节徽章
日期:2015-03-06 15:52:30
6 [报告]
发表于 2016-02-18 17:28 |只看该作者
回复 5# lianhd


    static may not be used when defining (as opposed to declaring) a static data member
g++ 出错信息
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP