看到一些 C++ 或者 C#项目 驼峰和下划线一块用,为啥泥?

1 天前
 ksc010
比如 void Function_Name();
2054 次点击
所在节点    C++
20 条回复
davehandong
22 小时 57 分钟前
C++里面驼峰或者 pascal 命名一般变量。下划线大写命名常量、宏。
mogg
22 小时 48 分钟前
可能是自动生成代码 ,module_name
NightFlame
22 小时 43 分钟前
哪个项目?
我都是:
私有变量 _myName
私有局部变量 myName
公开变量 MyName
Thymolblue
22 小时 6 分钟前
std 是下划线,Qt 是大小驼峰,Win32 API 纯大驼峰。混在一起就乱了。
pulutom40
21 小时 58 分钟前
你就说能不能用吧,是影响你下个月工资了还是影响程序性能了还是编译器编译不过了?
qW7bo2FbzbC0
21 小时 28 分钟前
纯 c# 项目用推荐风格的话是不存在这种

像楼上说的有可能是 Win32 API 的历史问题

也有可能是其他语言刚转过来
son012
21 小时 16 分钟前
用 qt ,go 你说我为啥混用,go 喜欢驼峰,qt 喜欢下划线,两个要一起写,写着写着你都忘记该用那个了
kevinxzhao
21 小时 10 分钟前
没有规范,或者没那么强。
gullitintanni
19 小时 22 分钟前
不同项目有不同的代码风格约定,只要整个项目保持一致就没什么问题

我现在正在维护的公司屎山代码,变量命名里还带着类型信息,比如 iTotalCount ,charpUserName ,看着非常难受,但也能理解当初他们为什么要这么做
MrKrabs
19 小时 18 分钟前
看心情
lujiaxing
19 小时 1 分钟前
多正常. 有好多 CShaper 都是 C/C++ 转过来的, 代码风格里带有强烈的 C/C++ 痕迹. 这都不是最离谱的
最离谱的是我曾经在某公司的代码里看到

``namespace com.xxx.xxx.SomeNameSpace.Xxxx``

这种写法..

见到真是一口老血都喷出来了.
hefish
18 小时 29 分钟前
不为啥,leader 要求这么用。 现有代码都这么用。
geelaw
17 小时 44 分钟前
FooFoo_BarBar 这种在 C# 最常见的是自动生成的事件处理器的方法名,比如 Form_Resized 通常是 this 作为 Form 类上的 Resized 事件,又比如 btnOk_Click 是 this.btnOk 对象的 Click 事件。在 C# 第二常见的是 COM 接口重名方法自动映射的消歧义名字,比如 IFace1 有 HRESULT Method(ULONG *result) 而 IFace2 有 HRESULT Method(SHORT *result),那么同时实现 IFace1 和 IFace2 的 COM 对象就会具有 uint IFace1_Method() 和 short IFace2_Method()。这种 COM 改名方法对于用 C 语言访问 COM 也适用。

可以认为 _ 起到一个 :: (C++) 或者 . (C#) 的作用。
liuliuliuliu
17 小时 35 分钟前
@geelaw 这个正解,C#里加下划线都是自动生成的代码,如果是手工写的还有下划线的,那就是 c 语言转过来的人,哈哈
w568w
15 小时 49 分钟前
@gullitintanni > 变量命名里还带着类型信息,比如 iTotalCount ,charpUserName

这个是标准的匈牙利命名法,主要是在前 IDE 时代用的。当时没有很好的代码智能提示,所以相比每次用一个变量都需要找到它的 declaration ,能从变量名里直接读出类型显然更方便。现在有时写代码我也用 g_ 标识全局变量、s_ 标识静态变量、k_ 标识常量。
geelaw
15 小时 39 分钟前
@w568w #15 iTotalCount 是错误的匈牙利命名法,匈牙利命名法里的“类型”信息不是存储类型而是含义类型,比如 cbStruct 和 cchOutput 才是正确的,uStruct 和 uOutput 则是错误的。

cb = Count of Bytes
cch = Count of CHars
u = Unsigned
w568w
15 小时 26 分钟前
@geelaw 你说的是「匈牙利应用命名法」,我说的是「系统匈牙利命名法」。都属于匈牙利命名。

ref: https://zh.wikipedia.org/wiki/%E5%8C%88%E7%89%99%E5%88%A9%E5%91%BD%E5%90%8D%E6%B3%95
maymay5
14 小时 43 分钟前
C#命名规范我见的最多的:函数、类名用大坨峰;局部变量名用小坨峰;常量、静态变量、全局变量用全大写➕下划线断词代替空格,数据库表名用纯小写用下划线断词代替空格;依赖注入用小坨峰前置一个下划线
bbbblue
13 小时 53 分钟前
我看 UE 似乎就是这样 不过他还把类型都带上 比如 BP_Player 😂(玩家蓝图)
INCerry
5 小时 45 分钟前
C# 官方推荐的风格只有一种,也就是现在.NET BCL 的风格,其它的就看个人习惯和团队规范了,我还见过 java 用下划线分割的呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1159892

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX