免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58程序设计版块每日发帖之星
日期:2016-01-05 06:20:00程序设计版块每日发帖之星
日期:2016-01-07 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-19 11:51 |只看该作者 |正序浏览
本帖最后由 fender0107401 于 2011-02-19 11:53 编辑

先说static吧,

1. 可以加在external variable前面,然后只有这个source file的function才能看见,

2. 可以加在函数声明前面,同上。

3. 可以加在local variabl前面,这个还有点用,但还是应该尽量避免吧。

问题是1、2两会有人这么写吗?用source file来限定scope?

觉大多数的人都是写在header file里面吧。

变量或者函数的scope应该是一个比较严肃的问题,怎么能拿source file来限定呢?反正觉得很奇怪。

再说register吧,

编译器可以忽略,声明多了也没用,还不是所有的类型都能放进去,还要取决于下层的hardware,

更加要命的是声明成这个了以后还没有办法获取其地址,那怎么玩指针啊,

这么多条条框框,让人望而生畏,而且似乎很难预测用了以后的结果,很难保证用了会变快。

有人用这个吗?编译器都respect这个东西吗?反正我觉得够呛。

论坛徽章:
0
126 [报告]
发表于 2011-03-11 22:41 |只看该作者
static 还是蛮有用的!

论坛徽章:
0
125 [报告]
发表于 2011-03-09 11:42 |只看该作者
可以看出楼主对C实现模组封装,信息隐藏的理解不够到位哈!

论坛徽章:
0
124 [报告]
发表于 2011-03-07 01:38 |只看该作者
C语言不同于其他语言的一个重要原因是因为他和硬件的紧密关系,是介于高级语言和低级语言之间的,因此有很多硬件相关的特性,例如在32位的计算机上,int是一个不小于4字节的值,而long的范围不能小于int,而不是如同其他语言定义了int和long的大小。而这是为了最高效的利用硬件平台的特性。

知道这样的设计初衷后,就不会认为register的设计无理了吧。

论坛徽章:
0
123 [报告]
发表于 2011-03-03 21:43 |只看该作者
明明是在说C,可是大家讨论C++,奇怪。

论坛徽章:
0
122 [报告]
发表于 2011-03-03 21:34 |只看该作者
register的确用的比较不多。不过static真的是太多太有用了。

论坛徽章:
0
121 [报告]
发表于 2011-03-02 15:49 |只看该作者
竟然都不知道 static 函数 比 非 static 函数 快很多? 这个可是性能优化的必用之法。
zhuomingliang 发表于 2011-03-01 11:13



    没听说过,这是咋个原理?

论坛徽章:
0
120 [报告]
发表于 2011-03-01 11:26 |只看该作者
回复 117# xr55993

对哦,我搞错了,好久不弄了,哈哈哈

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11
119 [报告]
发表于 2011-03-01 11:25 |只看该作者
全局static函数、变量、常量存在的唯一目的是防止大工程中的不同文件间的符号名冲突。
static局部变量存在的唯一目的是动态变量、常量静态化。所谓静态化是指只分配一次空间,只初始化一次,空间在进程执行期间不释放。

论坛徽章:
0
118 [报告]
发表于 2011-03-01 11:16 |只看该作者
竟然都不知道 static 函数 比 非 static 函数 快很多? 这个可是性能优化的必用之法。
zhuomingliang 发表于 2011-03-01 11:13



    第一次听说,求科普
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP