let*_*cal 1 c assembly system objdump
我试图了解事物在内存中的存储位置,例如全局和静态变量(.data,如果未初始化为零,)等。
我试图寻找/考虑的是一个宏,如下所示:
#define thisInteger 100
Run Code Online (Sandbox Code Playgroud)
这可以使用 objdump 找到吗?
此外,如果我将它分配给一个新变量,如下所示,在哪里可以找到它(在 .data 中猜测):
#define THIS_INTEGER 100
int newVariable = THIS_INTEGER;
Run Code Online (Sandbox Code Playgroud)
宏不是变量,因此它们不会存储在任何地方。当您这样做时#define thisInteger 100,C 预处理器会运行源代码并替换thisInteger为整型文字100。询问thisInteger存储位置与询问存储位置相同100。要验证这一点,请尝试类似&thisInteger. 它不会编译,因为它&100是非法的并且没有任何意义。
这可以使用 objdump 找到吗?
不。预处理是在编译之前完成的复制粘贴处理。
此外,如果我将它分配给一个新变量,如下所示,在哪里可以找到它
取决于您定义变量的位置。