在C语言中,编译时查找全局const变量值


const int hello= 0x1111;
int main(){
}

我构建了一个非常简单的代码,并使用

编译它
gcc t.c -g -o t.out

我可以使用objdump或nm或任何工具来确保const变量值吗?我总是找到变量"hello"的地址,但找不到值

任何人都可以帮助我,非常感谢

示例代码

const int hello = 0xdeadbeef;
int main()
{
  return 0;
}

编译

gcc-4.9   -W -Wall -Wextra -pedantic  -std=c11 fortests.c -o fortests

转储

内容
objdump -xDSs fortests | less
(倾销的有点多,但没有成本,所以……)),搜索hello
0000000000400594 g     O .rodata        0000000000000004              hello

这意味着它在.rodata部分。我们明确地要求objdump列出所有章节的内容,因此我们得到了0xdeadbeef的值。

Contents of section .rodata:
  400590 01000200 efbeadde                    ........ 
                  ^^^^^^^^
             here ||||||||

现在应该很清楚了,为什么你这么难找到它

相关内容

  • 没有找到相关文章

最新更新