Gur*_*uri 6 c++ language-agnostic programming-languages
例如
int a=3;//-----------------------(1)
Run Code Online (Sandbox Code Playgroud)
和
int a_long_variable_name_used_instead_of_small_one=3;//-------------(2)
Run Code Online (Sandbox Code Playgroud)
在(1)和(2)中将获得更多的存储空间或相等的空间将获得?
Fer*_*cio 18
在C++和大多数静态编译的语言中,变量名称在编译过程中可能占用更多空间,但是通过运行时,名称将被丢弃,因此根本不占用任何空间.
在提供运行时内省/反射的解释语言和编译语言中,名称可能占用更多空间.
此外,语言实现将影响空间变量名称占用的空间.实现者可能已决定对每个变量名使用固定长度的缓冲区,在这种情况下,无论长度如何,每个名称都占用相同的空间.或者他们可能根据长度动态分配空间.
两者都占用相同的内存量.变量名只是为了帮助您,程序员,记住变量的用途,并帮助编译器关联同一变量的不同用法.除了调试符号之外,它们在编译的代码中没有出现.
您在C/C++中为变量赋予的名称不会影响生成的可执行代码的大小.当您声明一个这样的变量时,编译器会保留内存空间(在x86/x64上为int,四个字节)以存储该值.要访问或更改该值,它将使用地址而不是变量名称(在编译过程中丢失).