以下是源码:
int duplicate(int n) { return n * 2; } int global_var = duplicate(0x42); int main(int argc, char** argv){ return global_var; } 有一个 global variable, 用以下命令编译,并查看汇编代码:
g++ -o main ./main.c -O0 objdump -C -S -s main 其输出可见: https://controlc.com/70c59b1e
总是听别人说,static storage variable(基本上就是 global variable)在进入main之前就被初始化了,但是在查看汇编代码时,我并没有找到相关的调用。
__static_initialization_and_destruction_0(int, int)看起来像是初始化global_var,被_GLOBAL__sub_I__Z9duplicatei调用,但是我没有在任何地方看到对_GLOBAL__sub_I__Z9duplicatei的调用。因此想请问我的思路对么?
