neutronlmk 发表于 2019-8-19 11:33:41

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

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

kebaojun305 发表于 2019-8-19 11:36:50

这是下划线和大小写 一起上啊 。{:titter:}

68336016 发表于 2019-8-19 11:40:48

IDE像VISUAL STUDIO一样好用的话,什么问题都没有,直接变量重命名

security 发表于 2019-8-19 11:58:54

我已经抛弃匈牙利命名法 5 年多了。

neutronlmk 发表于 2019-8-19 11:59:58

security 发表于 2019-8-19 11:58
我已经抛弃匈牙利命名法 5 年多了。

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

security 发表于 2019-8-19 12:02:25

neutronlmk 发表于 2019-8-19 11:59
基于什么原因?
属性之类的前缀呢?一并不要了吗?

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

neutronlmk 发表于 2019-8-19 12:06:53

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

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

wudicgi 发表于 2019-8-19 12:24:44

不建议加,原因就是现在 IDE 都很智能了
另外一些类型不匹配的问题编译器也会出 warning, 不用人工看变量名检查

zc3909 发表于 2019-8-19 12:26:43

习惯还是加上数据类型iTemp

security 发表于 2019-8-19 12:30:55

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

Source Insight 4.0

擦鞋匠 发表于 2019-8-19 14:20:17

建议直接参考菊花厂的代码规范。

neutronlmk 发表于 2019-8-19 14:24:35

擦鞋匠 发表于 2019-8-19 14:20
建议直接参考菊花厂的代码规范。

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

ttoto 发表于 2019-8-19 14:32:07

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

tomzbj 发表于 2019-8-19 14:36:37

参考google的规范吧,简单点就这几条:
文件命名:全小写,可加下划线或横线
类型命名:大小写,无下划线
变量命名:全小写,下划线分隔
   全局变量:前面加g_
常量命名:前面加k,大小写
函数命名:大小写,存取函数与变量名一致
枚举命名:全大写,下划线分隔
宏命名:同上

完整的规范见附件。

bsz84 发表于 2019-8-19 16:44:49

没有统一的规范是件麻烦的事!

了无 发表于 2019-8-19 18:43:00

喜欢大小驼峰法命名,匈牙利了解了一下就直接除外了

laujc 发表于 2019-8-19 18:53:47

我感觉全小写打字快一些,所以我全部小写,加下划线,不加类型前缀

Gorgon_Meducer 发表于 2019-8-19 23:22:14

只要你还是用c就建议加。因为c不是type safe的。如果你不是用c语言,而是用type safe的语言,比如c#,那就完全没必要加。

Gorgon_Meducer 发表于 2019-8-19 23:24:42

楼主还有一个问题就是,为啥会出现一个变量被多个不同的文件使用???这才是根本要反思下的事情。应该考虑彻底摈弃非const的全局变量了。

xml2028 发表于 2019-8-19 23:31:13

tomzbj 发表于 2019-8-19 14:36
参考google的规范吧,简单点就这几条:
文件命名:全小写,可加下划线或横线
类型命名:大小写,无下划线


学习学习

neutronlmk 发表于 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,就向诸位大佬靠拢。


页: [1]
查看完整版本: 变量名前面还建议加上数据类型的前缀吗?