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

为什么C语言标识符可以包含$字符?C++中是否支持相同的用法?

关于C/C++标识符中$字符的支持说明

C语言的情况

  • C标准(C89及后续所有正式版本)明确规定,合法标识符仅可由大小写字母、数字、下划线(_)构成,且首字符不能为数字,$字符本身不属于标准允许的标识符字符范围。
  • 你见到的可编译通过的情况,属于编译器的非标准扩展:GCC、Clang、MSVC等主流编译器都默认支持将$作为标识符合法字符,主要是为了兼容早期UNIX平台的遗留代码,并非C标准要求的通用行为。
  • 可移植性说明:如果需要编写严格符合标准、跨平台的C代码,不要在标识符中使用$字符,部分不支持该扩展的编译器会直接抛出语法错误。

C++语言的情况

C++标准层面同样没有将$纳入合法标识符的允许字符范围,和C的规则一致,同样是主流编译器提供了对应的扩展支持,用法和C语言场景下完全相同。如果开启编译器的严格标准检查(比如给GCC/Clang添加-pedantic编译参数),会对包含$的标识符抛出扩展使用警告。


内容的提问来源于stack exchange,提问作者FI0r1an

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 21:36:04