免费注册 查看新帖 |

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
21 [报告]
发表于 2011-02-23 23:13 |显示全部楼层
回复 73# OwnWaterloo

我不喜欢emacs,不知道怎么回事,反正就是用着别扭,看着难受,可能是先入为主的原因吧。

我就喜欢最大化的gVim,再加上DejaVu Mono字体,然后就使用默认的配色,

写C的时候就开一个侧边栏,写LaTeX的时候就不怎么开那个侧边栏。

至于static吗,我还是少用的好,如果项目里面有2个函数重名的话,我首先不喜欢,然后我用的FreeBSD基本系统里面的ctags也会出警告(我遇见过,但是不是为了测试static这个关键字),还是靠前缀搞定比较踏实。

至于register吗,感觉有点鸡肋,感觉还是少用吧,没有那个功夫琢磨给那个变量加这个关键字,而且你加了也不是一定好使,干脆就忽略了得了。

论坛徽章:
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
22 [报告]
发表于 2011-02-23 23:47 |显示全部楼层
回复 75# OwnWaterloo

我也知道C语言对identifier的长度是有限制的,

所以有的时候也在担心命名是否过长,但是到现在为止还没有出什么乱子,

而且我这个命名啊,是系统命名法,不是乱起名的,

但是必须承认,刚刚发这个贴的时候我对static的理解还是很不到位,

但是现在想想,可能还是难以应用在我的项目里面,

第一是我不喜欢一个项目里面有两个函数同名,这个我感觉别扭。虽说是不同模块的,我也受不了。

不一样的名就得干不一样的事,一样的名就得干一样的事,防止我脑子乱。

第二是我担心像cscope这种工具会不会找不着北。

至少我用的ctags已经找不着北了。

论坛徽章:
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
23 [报告]
发表于 2011-02-23 23:54 |显示全部楼层
回复 76# OwnWaterloo

你应该这么说,

Vi/Vim使用模式,所以键盘处理能力按照n*n*n的复杂性增长。

Emacs使用组合键,所以键盘处理的能力是n+(n-1)+n(n-2)的复杂性增长。

所以同样是实现100中组合的话,

Vi/Vim只需要100^(1/3)个键,

Emacs就不好说了,

所以我在Vim里面感觉不怎么费时间在操作上。

论坛徽章:
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
24 [报告]
发表于 2011-02-24 00:01 |显示全部楼层
回复 79# OwnWaterloo


哈哈,也对啊,

不过我现在在Vim里面都不怎么走脑子了,都习惯了,常用的就那几个操作。

论坛徽章:
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
25 [报告]
发表于 2011-02-24 18:10 |显示全部楼层

论坛徽章:
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
26 [报告]
发表于 2011-02-24 20:19 |显示全部楼层
回复 86# 狗气球

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

像你说的,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
27 [报告]
发表于 2011-02-24 21:49 |显示全部楼层
回复  fender0107401

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

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


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

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

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

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

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

论坛徽章:
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
28 [报告]
发表于 2011-02-24 22:12 |显示全部楼层
回复 92# OwnWaterloo

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

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

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

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

论坛徽章:
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
29 [报告]
发表于 2011-02-24 22:26 |显示全部楼层
回复 94# donotblock

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

论坛徽章:
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
30 [报告]
发表于 2011-02-24 22:34 |显示全部楼层
回复 96# donotblock

娱乐娱乐,别当真。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP