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

发布于 2024-12-04 08:21:48 字数 95 浏览 0 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

疏忽 2024-12-11 08:21:48

C++ 标准的 lex.name 部分说

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

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

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

这些限制可能会限制数量,包括下面描述的数量或其他数量。建议每个数量后面的括号内的数字作为该数量的最小值。然而,这些数量只是指导方针,并不能确定合规性。


对于 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 says

An identifier is an arbitrarily long sequence of letters and digits.

However, 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:

Because computers are finite, C++ implementations are inevitably limited in the size of the programs they can successfully process. Every implementation shall document those limitations where known. This documentation may cite fixed limits where they exist, say how to compute variable limits as a function of available resources, or say that fixed limits do not exist or are unknown.

The limits may constrain quantities that include those described below or others. The bracketed number following each quantity is recommended as the minimum for that quantity. However, these quantities are only guidelines and do not determine compliance.


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

天气好吗我好吗 2024-12-11 08:21:48

在 MS Visual Studio 2003–2012 中,标识符的最大长度为 2047 个字符(根据

In MS Visual Studio 2003–2012 the maximum length of an identifier is 2047 characters (per MSDN).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文