搜索
bottom↓
回复: 20

变量名前面还建议加上数据类型的前缀吗?

[复制链接]

出0入27汤圆

发表于 2019-8-19 11:33:41 | 显示全部楼层 |阅读模式
最近在整理自己的程序规范,之前参考是匈牙利命名法,变量前都加上指示数据类型的前缀如g_cCOSPROCCounter,g_wSystemTimer。我也是参考本分论坛的做法,按一样的的写法甚至Freerots也是类似的写法。
但在搜集资料过程中,发现这种做法已经被微软,菊花厂不推荐,主要原因是一旦需要改变这个变量的数据类型,就可能导致使用到这个变量的文件都要改动。
两种说法都有道理,想了解一下诸位公司内是如何要求的。
我希望能借鉴一下,给自己的小队伍整理出一份规范。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入8汤圆

发表于 2019-8-19 11:36:50 | 显示全部楼层
这是下划线和大小写 一起上啊 。

出130入129汤圆

发表于 2019-8-19 11:40:48 | 显示全部楼层
IDE像VISUAL STUDIO一样好用的话,什么问题都没有,直接变量重命名

出0入8汤圆

发表于 2019-8-19 11:58:54 | 显示全部楼层
我已经抛弃匈牙利命名法 5 年多了。

出0入27汤圆

 楼主| 发表于 2019-8-19 11:59:58 | 显示全部楼层
security 发表于 2019-8-19 11:58
我已经抛弃匈牙利命名法 5 年多了。

基于什么原因?
属性之类的前缀呢?一并不要了吗?

出0入8汤圆

发表于 2019-8-19 12:02:25 | 显示全部楼层
neutronlmk 发表于 2019-8-19 11:59
基于什么原因?
属性之类的前缀呢?一并不要了吗?

只有 s_、g_,前缀,表征 static、global 作用域。
现代化的编辑器,已经让你可以 666 的感知变量类型了。

出0入27汤圆

 楼主| 发表于 2019-8-19 12:06:53 | 显示全部楼层
security 发表于 2019-8-19 12:02
只有 s_、g_,前缀,表征 static、global 作用域。
现代化的编辑器,已经让你可以 666 的感知变量类型了 ...

我用ultraedit,还有现在测试notepad++,还不知道如何看变量的数据类型。
请教下你用哪一款编辑器?
产量c,指针类型这类不会改类型的前缀有保留不?

出0入0汤圆

发表于 2019-8-19 12:24:44 | 显示全部楼层
不建议加,原因就是现在 IDE 都很智能了
另外一些类型不匹配的问题编译器也会出 warning, 不用人工看变量名检查

出0入0汤圆

发表于 2019-8-19 12:26:43 来自手机 | 显示全部楼层
习惯还是加上数据类型iTemp

出0入8汤圆

发表于 2019-8-19 12:30:55 | 显示全部楼层
neutronlmk 发表于 2019-8-19 12:06
我用ultraedit,还有现在测试notepad++,还不知道如何看变量的数据类型。
请教下你用哪一款编辑器?
产量 ...

Source Insight 4.0

出0入0汤圆

发表于 2019-8-19 14:20:17 | 显示全部楼层
建议直接参考菊花厂的代码规范。

出0入27汤圆

 楼主| 发表于 2019-8-19 14:24:35 | 显示全部楼层
擦鞋匠 发表于 2019-8-19 14:20
建议直接参考菊花厂的代码规范。

有参考。
准备以它的标准精简的。

出0入0汤圆

发表于 2019-8-19 14:32:07 | 显示全部楼层
隨著語言的發展,高級語言裡面越來越忽略數據的實際類型(這部分編譯器或者解釋器已經幫你做了)。所以沒有必要每一個變量都加類型的說明了。
如果你是寫單片機類的程序的話,最好加上。方便不同平台移植。
我建議你的評價標準是回顧一下近年的團隊代碼,看一下有沒有需要做到類型轉換。譬如說多個char拼成一個float的操作,或者是用char[] 而不是string,如果有的話變量名保留類型,沒有的話就不需要把變量名字做的很長了。

出0入362汤圆

发表于 2019-8-19 14:36:37 | 显示全部楼层
参考google的规范吧,简单点就这几条:
文件命名:全小写,可加下划线或横线
类型命名:大小写,无下划线
变量命名:全小写,下划线分隔
     全局变量:前面加g_
常量命名:前面加k,大小写
函数命名:大小写,存取函数与变量名一致
枚举命名:全大写,下划线分隔
宏命名:同上

完整的规范见附件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-8-19 16:44:49 | 显示全部楼层
没有统一的规范是件麻烦的事!

出0入8汤圆

发表于 2019-8-19 18:43:00 | 显示全部楼层
喜欢大小驼峰法命名,匈牙利了解了一下就直接除外了

出0入4汤圆

发表于 2019-8-19 18:53:47 来自手机 | 显示全部楼层
我感觉全小写打字快一些,所以我全部小写,加下划线,不加类型前缀

出0入296汤圆

发表于 2019-8-19 23:22:14 来自手机 | 显示全部楼层
只要你还是用c就建议加。因为c不是type safe的。如果你不是用c语言,而是用type safe的语言,比如c#,那就完全没必要加。

出0入296汤圆

发表于 2019-8-19 23:24:42 来自手机 | 显示全部楼层
楼主还有一个问题就是,为啥会出现一个变量被多个不同的文件使用???这才是根本要反思下的事情。应该考虑彻底摈弃非const的全局变量了。

出675入8汤圆

发表于 2019-8-19 23:31:13 来自手机 | 显示全部楼层
tomzbj 发表于 2019-8-19 14:36
参考google的规范吧,简单点就这几条:
文件命名:全小写,可加下划线或横线
类型命名:大小写,无下划线

学习学习

出0入27汤圆

 楼主| 发表于 2019-8-20 16:54:27 | 显示全部楼层
Gorgon_Meducer 发表于 2019-8-19 23:24
楼主还有一个问题就是,为啥会出现一个变量被多个不同的文件使用???这才是根本要反思下的事情。应该考虑 ...
只要你还是用c就建议加。因为c不是type safe的。如果你不是用c语言,而是用type safe的语言,比如c#,那就完全没必要加。
非常感谢,解释的很清楚。茅塞顿开。
楼主还有一个问题就是,为啥会出现一个变量被多个不同的文件使用???这才是根本要反思下的事情。应该考虑彻底摈弃非const的全局变量了。
这个正在学习中,看了版主与诸位网友的讨论,获益良多。
我同时在用1K,2K的ROM的MCU,使用全局变量能节省不少空间。
现在打算这些小ROM要用的子程序,仍然使用全局变量传递数据,整理存档。
上了51之后档次的mcu,就向诸位大佬靠拢。


回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-18 13:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表