variables - g++变量名称有长度限制吗?

标签 variables g++ identifier maxlength variable-names

看到标题

最佳答案

简短答案:
没有
长答案:
是的,它必须足够小以适合内存,但是否则,不是真的。如果有一个内置的限制(我不相信有限制),那么它太大了,您很难达到它。
实际上,您真的让我感到好奇,所以我创建了以下Python程序来生成代码:

#! /usr/bin/env python2.6
import sys;
cppcode="""
#include <iostream>
#include <cstdlib>

int main(int argc, char* argv[])
{
     int %s = 0;
     return 0;
}
"""

def longvarname(n):
    str="x";
    for i in xrange(n):
        str = str+"0";
    return str;

def printcpp(n):
    print cppcode % longvarname(n);

if __name__=="__main__":
    if len(sys.argv)==2:
        printcpp(int(sys.argv[1]));

这将使用所需的长度变量名称生成C ++代码。使用以下内容:
./gencpp.py 1048576 > main.cpp
g++ main.cpp -o main

上面没有给我带来任何问题(变量名的长度大约为1MB)。我尝试了一个千兆字节,但是我对字符串的构造不是很聪明,所以我决定在gencpp.py花费太长时间时放弃。
无论如何,我非常怀疑gcc为变量名预分配了1MB。它纯粹受内存限制。

关于variables - g++变量名称有长度限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2682027/

相关文章:

python - 如何在 Python 3 中设置字符串格式的空格

php - 临时变量 v 数组索引

Python:如何在没有错误的情况下引用可选变量

c++ - -Wconversion-null 不考虑所有构造函数

c++ - 由下划线开头的标识符导致的错误的真实示例

javascript - JS 使用变量作为 document.getElementById 的 id 不起作用?

c++ - 为什么 Linux 报告我的应用程序的内存使用量太大?

c++ - 获取程序中的当前优化级别

java - 仅通过其唯一的实例 ID 来 equal() 类实例是不好的做法吗?

c++ - 枚举使用问题