免费注册 查看新帖 |

Chinaunix

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

[C] 我觉得在C里面static和register是2个有点搞笑的特性。 [复制链接]

论坛徽章:
0
61 [报告]
发表于 2011-02-22 18:40 |只看该作者
而且我觉得优化这个事,主要应该靠算法去实现,而不是把责任都推给编译器。
fender0107401 发表于 2011-02-21 11:01



    你能这么说,正说明还不了解C语言啊。

论坛徽章:
0
62 [报告]
发表于 2011-02-22 18:44 |只看该作者
回复 60# zhouhong0801


    前边已经有人讲过了有这个作用。

    我所在的项目,有很多陈年旧代码。当时写的人就没有区分对外接口和非接口的想法。
    结果可想而知。很吓人。

    后来来了一哥们儿,代码看了两天就说:为啥他们不用static啊。

***

    后来有人说:因为static了不好打补丁啊。

***

    即使是这样,哪怕你#define STATIC也是有意义的。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
63 [报告]
发表于 2011-02-22 21:22 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
64 [报告]
发表于 2011-02-22 22:23 |只看该作者
接分走人

论坛徽章:
0
65 [报告]
发表于 2011-02-23 11:09 |只看该作者
。。。继续撸过,借贴提问:
C里面,不同translation unit的file scope算不算一个scope?
C++里面,不同translation unit的global namespace scope算不算一个scope?

论坛徽章:
0
66 [报告]
发表于 2011-02-23 11:09 |只看该作者
面static和register
static 很正常吧?
我对c不熟悉

论坛徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之约旦
日期:2015-02-11 14:38:37双鱼座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29双子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亚洲杯之科威特
日期:2015-04-17 16:51:51
67 [报告]
发表于 2011-02-23 12:16 |只看该作者
。。。继续撸过,借贴提问:
C里面,不同translation unit的file scope算不算一个scope?
C++里面,不同t ...
幻の上帝 发表于 2011-02-23 11:09


第一个是不算,
第二个应该是算的,不过不太确定。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
68 [报告]
发表于 2011-02-23 13:51 |只看该作者
回复 65# 幻の上帝

gloabl namespace 本来就是一个吧?

你问的是global anonymous namespace吧?
anonymous namespace和static还是有区别的。
static真的是file scope, 是内部的。
anonymous其实是外部的, 只是有一个编译器添加的namespace, 所以通常其他file访问不到。
如果知道编译器如何添加的, 还是可以访问的。

  1. x.hpp
  2. template<int* > struct X {};
  3. namespace { int x; }

  4. a.cpp
  5. #include "x.hpp"
  6. struct X<&x> a;

  7. b.cpp
  8. #include "x.hpp"
  9. struct X<&x> b;
复制代码
两个 struct X<&x> 是不同的类型……
会引起代码膨胀的……

论坛徽章:
0
69 [报告]
发表于 2011-02-23 18:16 |只看该作者
初学者,在学习中

论坛徽章:
0
70 [报告]
发表于 2011-02-23 18:44 |只看该作者
本帖最后由 幻の上帝 于 2011-02-23 18:46 编辑
第一个是不算,
第二个应该是算的,不过不太确定。
zhaohongjian000 发表于 2011-02-23 12:16



我也是这么(包括“不太确定”)认为的……

回复 68# OwnWaterloo

呃,我指的是这个:
ISO C++03 3.3.5
The outermost declarative region of a translation unit is also a namespace, called the global namespace. A
name declared in the global namespace has global namespace scope (also called global scope). The potential
scope of such a name begins at its point of declaration (3.3.1) and ends at the end of the translation unit
that is its declarative region. Names with global namespace scope are said to be global.
关于anonymous namespace这个我知道,你说的没错……(不过有点奇怪标准的措辞,用unnamed而不用anonymous,倒是union是用anonymous的……)


提这两个问题是想确定一下C里面找不找得到C++的global (namespace) scope的等价物……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP