免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: asker160
打印 上一主题 下一主题

一个面试题目: C中的static用法和C++的有什么不一样? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-03-22 11:46 |只看该作者
回复 10# asker160


    人家已经说了是给编译器看的。而且是C99,VC不支持C99.gcc部分支持。

拿gcc测试吧,而且不要忘了-std=C99

论坛徽章:
0
12 [报告]
发表于 2012-03-22 11:54 |只看该作者
主要还是作用域不一样,其它不一样的地方就是真语言的不同了!

论坛徽章:
0
13 [报告]
发表于 2012-04-09 14:53 |只看该作者
C++可以修饰静态数据成员/成员函数

论坛徽章:
0
14 [报告]
发表于 2012-04-11 15:36 |只看该作者
除去class scope以外也不一样。
static可以影响标识符/名称的链接和对应实体的存储。具体含义取决于scope。在C的file scope下static可以先定对象或函数名具有内部链接,但对象存储的决定不是static的功劳,即使不写也一样。而换成block scope,static就决定存储却不决定链接了。
大概是为了减少这种奇怪规则造成的误导,C++03中,static在namespace scope修饰对象声明是deprecated的,在C++11被移除。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP