Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 一个变量的名称占用多少字节?_C++ - Fatal编程技术网

C++ 一个变量的名称占用多少字节?

C++ 一个变量的名称占用多少字节?,c++,C++,charfooishness='f' 存储f需要1个字节,但是存储fooishness需要多少字节?哪里它的规模如何?我已经读过了,但它没有提到命名所需的空间 如果我有一组字符,那么它是否需要更多的存储来处理数组,而不是保存数据本身? 名称是C++程序的短暂部分:你如何命名事物并不重要,执行代码(大部分)仍然是相同的。在名称的性质确实影响程序的可观察行为的情况下,很少有例外,例如,当使用std::type_info()时,因为它确实提供了对某种程度上类似于类型名称的实体的访问 虽然名称不影响存储

charfooishness='f'

存储
f
需要1个字节,但是存储
fooishness
需要多少字节?哪里它的规模如何?我已经读过了,但它没有提到命名所需的空间


如果我有一组字符,那么它是否需要更多的存储来处理数组,而不是保存数据本身?

名称是C++程序的短暂部分:你如何命名事物并不重要,执行代码(大部分)仍然是相同的。在名称的性质确实影响程序的可观察行为的情况下,很少有例外,例如,当使用
std::type_info()
时,因为它确实提供了对某种程度上类似于类型名称的实体的访问

虽然名称不影响存储的程序实体的大小,但无论它们是在堆上、堆栈上、全局内存中还是嵌入在其他对象中,名称都可能对程序本身产生大小影响:用于各种实体的名称与调试信息一起存储,调试信息通常(但不一定)贡献程序运行的大小。此外,外部引用实体的名称可能最终被用于链接器符号,特别是在使用任何形式的共享对象来解析这些对象所引用的内容时。但是,在所有这些情况下,名称都是一个恒定的大小,在某种程度上影响程序大小。

例如:

#include <iostream>

int main() {
    char fooishness = 'f';
    std::cout << fooishness << std::endl;
    return 0;
}
#包括
int main(){
煤焦丰满度='f';

STD::CUT在最终生成的代码中占用0个字节。如果你在调试模式下编译,你必须考虑到符号名称可能被存储为C风格字符字。当编译程序时,编译器将其翻译成机器代码。C++中存在的变量名称和类型信息不存在。n机器代码。因此,您担心的这些事情会占用编译程序的零空间。这可能是特定于操作系统的。因此,请阅读,这可能取决于几个因素,首先是您的体系结构CPU、芯片组、ISA等,以及您的操作系统及其文件结构,最后是您正在使用的编译器。如果您在GCC与Clang与MSVC与Intel编译器下编译,则表查找、命名约定、符号等将有所不同!!!它可能是字符串,但可能不在程序中。某些工具将调试器帮助器信息存储在单独的文件中。
    #include <iostream>

int main() {
    char fooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishness = 'f';
    std::cout << fooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishnessfooishness << std::endl;
    return 0;
}