找出函数中变量分配类型的方法
Way to find out allocation type of variables in function
我想找出函数块中变量的存储类型。如何检查编译器是否已将自动变量存储提升为寄存器存储,或者编译器是否接受了用寄存器存储声明的变量?我假设通过查看优化后的obj文件的汇编代码会给我们一个想法。请列出我需要与gcc或cl.exe一起使用的开关以获取此信息?
gcc中的-S
开关就是您要查找的开关
参见§3.2控制输出类型的选项(GCC手册)
您可以查看生成的程序集,但无法从程序中以编程方式确定。请注意,GCC会忽略register
关键字,除非在尝试获取register
存储变量的地址时会发出错误,并且当与GCC特定扩展共同使用时,会将变量强制放入特定寄存器中,以便与内联asm一起使用。不知道微软风投做什么。
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 是否有内置方法可以强制转换为不同的基础类型,但保留常量限定符?
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 类作用域的类型别名"using":[何时]方法中的用法可以先于类型别名?
- 调用具有未标识类型的类的方法
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- 我的模板类方法返回错误类型?
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- QtQuick - qml:28:错误:未知方法返回类型:自定义类型
- 构造智能点数据类型以及普通数据类型的通用方法
- 如何在没有实例的情况下获取非静态方法的类型?
- C++方法是否可以根据传递给构造函数的参数具有不同的返回类型?
- 在自定义 std::vector-like 容器中处理指针和非指针模板类型的最佳方法是什么?
- 使用类型id运算符的最佳替代方法
- Java 调用 dll 字符串返回类型方法
- C++ 如何绑定和调用模板化类型方法
- 将返回类型推断为模板参数类型方法
- 返回true的模板化类型方法是在条件中进行优化的良好候选者