免费注册 查看新帖 |

Chinaunix

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

[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
91 [报告]
发表于 2011-02-24 21:49 |只看该作者
回复  fender0107401

>> 我确实是觉得加前缀的方法能解决一切的命名冲突,

lss的意思应该是问你这个 ...
OwnWaterloo 发表于 2011-02-24 21:13


名字代表功能,前缀代表模块名,当然也对表模块的功能。所以如果功能一样,那么名字就应该一样。

我做个4个项目了大概是5000+10000+10000+20000行吧,

完全是我一手设计实现的,不过最大的哪个也只有不到400个子程序。

注:上面说我只写过1w出头的项目,那是忘了最后的哪个大的,最后哪个大的可是写的比较累,调试的时候想了很多方法来保证正确性,最后干脆调用gnu plot把所有数据都一步一步的画出来。

当数据结果比较复杂时,什么高明的调试工具都够呛,因为它没法预见到你的需求。所以只能自己写调试函数,如果没有gnu plot我后面那个项目就搞不定了。

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

>> 完全是我一手设计实现的
也许问题就出在这里?
因为都是自己一手设计实现, 所以就不需要考虑区分public与private?

论坛徽章:
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
93 [报告]
发表于 2011-02-24 22:12 |只看该作者
回复 92# OwnWaterloo

我好像有点明白了,我感觉是自己好像是有点强制所有人都用前缀命名法了,

如果我和别人一起做什么的时候,估计别人也许喜欢在自己模块的头文件里面加static,然后只有一个基本的接口是external的。

似乎这种隐藏方式更加的模块化一些,如果我使用static的话,也许我可以在每个模块的子目录下面生成tags来防止ctags之类的工具出问题。

现在感觉前缀命名的函数名稍微有点长,而且一个子模块的程序要是能看见另外一个模块的子程序似乎有点不够模块化。

论坛徽章:
0
94 [报告]
发表于 2011-02-24 22:24 |只看该作者
回复 91# fender0107401


    正确性不靠分析与测试来保证么,你是不是看着程序一步一步走下去,来检查程序是否正确? 第一次听说靠调试保证正确的

论坛徽章:
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
95 [报告]
发表于 2011-02-24 22:26 |只看该作者
回复 94# donotblock

我得看着它一步一步走下去,并且每一步的结果都是我需要,这样我才放心。

论坛徽章:
0
96 [报告]
发表于 2011-02-24 22:29 |只看该作者
回复 95# fender0107401


    我觉得你太可爱了  思维很有活力,虽然有些事情很搞笑

论坛徽章:
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
97 [报告]
发表于 2011-02-24 22:34 |只看该作者
回复 96# donotblock

娱乐娱乐,别当真。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
98 [报告]
发表于 2011-02-24 22:37 |只看该作者
回复 93# fender0107401

不, 跟强制没什么关系, 反正坛友之间也不太可能有机会一起做什么。

协作的模块, 人员之间, 相互间依赖越少越好, 这个没意见吧?
只提供一组必要的接口供他人使用, 维持这部分的稳定。
而余下部分, 就随便你怎么修改了, 因为其他人不依赖这部分的行为。
避免一个小的修改, 引起所有人都当机。
—— 至少理想情况是如此……

用命名来区分public/private也是可行的, 只是不如static那么强烈……

论坛徽章:
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
99 [报告]
发表于 2011-02-24 22:50 |只看该作者
回复 98# OwnWaterloo

照这个方法来的话,static的确是一个实现模块化的好方法。

你觉得用前缀+static怎么样,

既能实现高度的解耦,又能不会给ctags和cscope造成什么障碍。

论坛徽章:
0
100 [报告]
发表于 2011-02-24 22:58 |只看该作者
本帖最后由 uskee 于 2011-02-24 23:00 编辑

汗,(1)(2)一直在用,发现离不开了
register有时使用
c里将全局变量统一放在头文件里,可不是个好习惯
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP