Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.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++_C_Memory - Fatal编程技术网

C++ 变量名存储在哪里?

C++ 变量名存储在哪里?,c++,c,memory,C++,C,Memory,在编程中,建议始终使用更大、更清晰的变量名,假设我定义: int captain=10 ; 我知道存储了10,但是“captain”或变量名存储在哪里?谁为它分配内存 最后,除非您链接了其他调试信息,否则它们不会存储在任何地方 它们由工具链链接器转换为内存(RAM或ROM)加法和地址偏移量。最后,除非您链接了其他调试信息,否则它们不会存储在任何位置 它们由工具链链接器转换为内存(RAM或ROM)加法和地址偏移。编译后不会保留变量名,调试符号除外。没有为它们分配任何内存。编译器会这样做,以编译代

在编程中,建议始终使用更大、更清晰的变量名,假设我定义:

int captain=10 ;

我知道存储了10,但是“captain”或变量名存储在哪里?谁为它分配内存

最后,除非您链接了其他调试信息,否则它们不会存储在任何地方


它们由工具链链接器转换为内存(RAM或ROM)加法和地址偏移量。

最后,除非您链接了其他调试信息,否则它们不会存储在任何位置


它们由工具链链接器转换为内存(RAM或ROM)加法和地址偏移。

编译后不会保留变量名,调试符号除外。没有为它们分配任何内存。编译器会这样做,以编译代码。如果没有任何调试信息,变量名不会出现在可执行文件中。@Anirudh SHUKLA in books?:)C不像Java那样具有反射[1],因此您将无法在运行时检查这些名称,除非您执行一些宏技巧以确保变量名作为字符串可用。如果出于文档目的需要变量名,我建议使用静态分析工具(如doxygen)来确定变量名。[1] 仅供参考:即使调试符号出现在可执行文件中,也不意味着它们被加载到程序自己的虚拟地址空间中。调试器将加载它们,但调试器通常在单独的进程中运行。编译后不会保留变量名,调试符号中可能除外。没有为它们分配任何内存。编译器会这样做,以编译代码。如果没有任何调试信息,变量名不会出现在可执行文件中。@Anirudh SHUKLA in books?:)C不像Java那样具有反射[1],因此您将无法在运行时检查这些名称,除非您执行一些宏技巧以确保变量名作为字符串可用。如果出于文档目的需要变量名,我建议使用静态分析工具(如doxygen)来确定变量名。[1] 仅供参考:即使调试符号出现在可执行文件中,也不意味着它们被加载到程序自己的虚拟地址空间中。调试器将加载它们,但调试器通常在单独的进程中运行。计算机:“标签是给弱小的人的。”计算机:“标签是给弱小的人的。”