C++中标识符名称的长度是否有限制?

Mos*_*she 12 c++ gcc language-design

C++中的变量名称是否有长度限制?它是什么?这与机器的"64/32位"有什么关系吗?

编辑:具体来说,GCC的限制是什么?

Ben*_*igt 23

部分lex.nameC++标准的说

标识符是任意长的字母和数字序列.

但是,共享大量初始字符的变量名称可能不会被视为单独的变量,所使用的初始字符的确切数量是特定于实现的.附件B说:

由于计算机是有限的,因此C++实现不可避免地受限于它们可以成功处理的程序的大小.每个实施都应记录已知的限制.本文档可引用存在的固定限制,说明如何根据可用资源计算变量限制,或者说固定限制不存在或未知.

限制可能会限制包括下面描述的数量或其他数量的数量.建议将每个数量后面的括号内的数字作为该数量的最小值.但是,这些数量仅是指导原则,不能确定合规性.


对于gcc,限制是:

预处理器:没有限制

C语言:没有限制

C++:可能与C相同,没有记录单独的限制. "C语言的相应文档中记录了一些选择"

链接器(控制跨编译单元链接的外部名称):特定于平台,通常是无限制的


Fel*_*bek 7

在MS Visual Studio 2003-2012中,标识符的最大长度为2047个字符(每个MSDN).