You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++编程中在变量名中使用下划线是否属于不良命名方式?

C++变量名使用下划线的准确结论

语法规则层面(强制要求,违反会触发未定义行为或编译错误)

C++标准从未禁止在变量名中使用下划线,你之前的认知基本准确,只要避开以下3类标准明确保留给编译器、标准库实现的标识符写法,用下划线完全符合语法要求:

  • 禁止在任意作用域、任意位置使用连续两个下划线,比如user__id、__user_id这类写法都属于违规的保留标识符
  • 禁止使用下划线加大写字母开头的标识符,比如_UserId,全场景保留给语言实现使用
  • 全局作用域下禁止使用下划线开头的标识符,比如全局变量_user_count属于违规写法

补充:函数、类内部的局部变量以下划线开头,语法上不属于标准禁止的范畴,但工业界普遍不推荐这么写,很容易和保留标识符规则混淆,平白增加出错风险。

命名风格层面(非强制,随场景约定变化)

你朋友提到的“不能用下划线”的说法,本质是特定场景下的命名风格要求,不是C++语言的通用规则:

  • 用下划线分隔小写单词的蛇形命名(例如user_login_count)是C领域非常主流的命名方式,C标准库、STL源码、Google C++编码规范、LLVM项目规范等大量工业级实践都在广泛使用,不存在“用了就是写错了”的说法
  • 部分教材、课程老师或者开发团队会统一要求使用驼峰命名法(例如userLoginCount),这种场景下会要求不要用下划线做单词分隔——这是小范围的风格约定,既不是语法强制要求,也不是全行业统一的通用规范。

给初学者的实操建议

  • 先明确区分「语法硬规则」和「风格软约定」:不碰前面列的3个语法雷区,变量名里用下划线不会导致任何编译错误、运行异常,完全是合法可用的写法
  • 个人写练习代码时选自己读着顺的风格即可;参与团队项目、提交课程作业时,对齐对应场景的统一命名要求就可以,不用把某一种风格当成绝对正确的标准答案。

内容的提问来源于stack exchange,提问作者magui gonzález

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 16:01:05