Possible Duplicate:
Whether variable name in any programming language takes memory space
我刚读到有关内存分配的内容,忍不住想问这个问题:
两者兼顾
int x = 4;
和
int this_is_really_really_long_name_for_an_integer_variable = 4;
占用相同数量的内存(变量占用的总内存。不仅仅是sizeof(int)
)
我知道这个问题与“编程语言和编译器构造”有关。但是,我还没有研究它:(
一般来说,它们占用相同的空间量,即 sizeof(int)
。然而,有人可能会争辩说,当构建一个带有用于调试的附加符号的目标文件时,比率是不同的。变量存储的数据量不变,但变量名越长,调试符号占用的空间越大。考虑以下示例。
$ cat short.c && gcc -c short.c && wc -c short.o
int x = 0;
927 short.o
$ cat long.c && gcc -c long.c && wc -c long.o
int this_is_really_really_long_name_for_an_integer_variable = 0;
981 long.o
大小的不同就是变量名长度的不同。
不过,从运行时效率和内存使用的角度来看,这并不重要。