普通(构建)系统上的C/C++标识符的最大长度是多少?

mbx*_*mbx 30 c++ limit

我不记得标准说标识符的最大长度,所以理论上它们可能很.在现实生活中,这些名称至少可以受到编译器和链接器实现的限制.

虽然这应该适用于所有系统

int a;
Run Code Online (Sandbox Code Playgroud)

这个片段

#!/usr/bin/perl
print "int" . "b" x 2**16 . ";";
Run Code Online (Sandbox Code Playgroud)

创建一个声明,在编译/链接时使用gcc/mingw 为std::某些东西提供未定义的引用ld.

那么不同系统上标识符的大小限制是多少?

And*_*ahl 43


小智 15

C++标准的附录B表示实现应该支持至少1024个字符长的标识符,但这不是强制性的.

  • 一句话要小心,这个长度标识了错误的符号,如果记忆对我有用.将模板类作为参数的函数可以获得非常多毛的名称,因此限制不是那么多. (5认同)
  • @mbx 您不能链接来自不同编译器甚至不同编译器版本的 C++ 代码。这就是您为类型安全链接付出的代价,相信我是值得的。 (2认同)