c++ - 除了检查发出的机器代码之外,我如何找到 C++ 编译器如何实现某些东西?

标签 c++ optimization compiler-construction assembly

假设我制作了一组类来抽象某些东西,现在我担心我的 C++ 编译器是否能够 to peel off those wrappings and emit really clean, concise and fast code .如何找出编译器决定做什么?

我知道的唯一方法是to inspect the disassembly .这适用于简单的代码,但有两个缺点 - the compiler might do it different when it compiles the same code again而且机器码分析也不是小菜一碟,要花功夫。

我还能如何找到编译器如何决定实现我在 C++ 中编写的代码?

最佳答案

恐怕你在这件事上不走运。您试图找出“编译器做了什么”。编译器所做的是生成机器代码。反汇编只是机器代码的一种更易读的形式,但它不能添加不存在的信息。您无法通过查看汉堡包来了解绞肉机的工作原理。

关于c++ - 除了检查发出的机器代码之外,我如何找到 C++ 编译器如何实现某些东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4332286/

相关文章:

c++ - open()返回结果码的区别: 25 vs 3?

java - 何时以及如何正确使用循环优化和转换技术

java - Android 使用什么编译器?我可以更改它吗?

c++ - C++ 数组上的 Sizeof() 在一个函数中起作用,但在另一个函数中不起作用

c++ - 在 glDrawElements/glDrawArrays 中绘制多个 OpenGL 基元形状

c++ - dynamic_cast 失败意味着什么?

c++ - 在循环中用作 "const &"函数参数的临时对象的编译器优化?

php - 在类对象中创建一个静态成员并为特定功能调用该成员是个好主意吗

objective-c - 编译一个简单的 Objective-C 程序

c - 函数在可执行文件中的位置