c - 为变量分配了多少内存?

标签 c variables variable-names

<分区>

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

大小的不同就是变量名长度的不同。

不过,从运行时效率和内存使用的角度来看,这并不重要。

关于c - 为变量分配了多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13583296/

相关文章:

c - C编程中如何指定txt文件中删除记录的位置

javascript - 变量在 iPad 上未定义与在浏览器中定义的原因是什么?

c# - 为什么我可以声明一个与父作用域中的变量同名的子变量?

variables - 可以使用非英语的外语变量名吗?

JavaScript 名称变量

c - 跟踪/分析说明

c++ - 我可以在 C++ 结构上实现 .ToString() 以进行调试吗?

c++ - C/C++ 下划线 t/type (_t/_type) 和类名?

php - 在 PHP 的类中包含文件

java - 如何防止数字(0-9)在JAVA中用作变量?