C++ 中标识符名称的长度有限制吗?
C++ 中变量名称有长度限制吗?它是什么?这和机器的“64/32位”有什么关系吗?
编辑: 具体来说,GCC 的限制是什么?
Is there a length limit to the names of variables in C++? What is it? Does this have anything to do with the "64/32-bitness" of the machine?
EDIT: Specifically, what is GCC's limit?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
C++ 标准的
lex.name
部分说然而,共享大量初始字符的变量名可能不会被视为单独的变量,所使用的初始字符的确切数量是特定于实现的。附件 B 说:
对于 gcc,限制为:
预处理器:无限制
C 语言:< a href="http://gcc.gnu.org/onlinedocs/gcc/Identifiers-implementation.html#Identifiers-implementation" rel="noreferrer">没有限制
C++:可能与 C 相同,没有单独的限制记录。 "一些选择记录在 C 语言的相应文档中"< /a>
链接器(控制跨编译单元链接的外部名称):特定于平台,通常不受限制
section
lex.name
of the C++ standard saysHowever, variable names which share a very large number of initial characters may not be treated as separate variables, the exact number of initial characters used is implementation-specific. Annex B says:
For gcc, the limits are:
Preprocessor: no limit
C language: no limit
C++: Probably same as C, no separate limit documented. "Some choices are documented in the corresponding document for the C language"
Linker (controls external names linked across compilation units): Platform-specific, often unlimited
在 MS Visual Studio 2003–2012 中,标识符的最大长度为 2047 个字符(根据
In MS Visual Studio 2003–2012 the maximum length of an identifier is 2047 characters (per MSDN).