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] 仅供参考:即使调试符号出现在可执行文件中,也不意味着它们被加载到程序自己的虚拟地址空间中。调试器将加载它们,但调试器通常在单独的进程中运行。计算机:“标签是给弱小的人的。”计算机:“标签是给弱小的人的。”