在函数中找出变量的分配类型的方法

时间:2011-06-14 03:35:32

标签: c++ c optimization gcc g++

我想在功能块中找出存储类型的变量。如何检查编译器是否已将提升的自动变量存储提升到寄存器存储,或者编译器是否遵守使用寄存器存储声明的变量?我假设在优化之后看到obj文件的汇编代码会给我们一个想法。请列出我需要使用gcc或cl.exe来获取此信息的开关?

2 个答案:

答案 0 :(得分:2)

您可以查看生成的程序集,但无法以编程方式从程序中确定这一点。一般要注意GCC会忽略register关键字,除非您尝试获取register存储变量的地址时发出错误,并且与GCC特定扩展一起使用时强制变量进入与内联asm一起使用的特定寄存器。不知道MSVC做了什么。

答案 1 :(得分:2)

gcc中的-S开关是您正在寻找的。{ 见§3.2 Options Controlling the Kind of Output (GCC manual)