看标题
简短回答:
No
长答案:
是的,它必须足够小才能适合内存,但否则就不行,不是真的。如果有一个内置的限制(我不相信有),那么它太大了,你真的很难达到它。
事实上,你让我很好奇,所以我创建了以下 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。它纯粹受内存限制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)