sha*_*oth 15 c++ compiler-construction optimization assembly
假设我精心设计了一组类来抽象一些东西,现在我担心我的C++编译器是否能够剥离这些包装并发出非常干净,简洁和快速的代码.我如何找出编译器决定做什么?
我知道的唯一方法是检查拆卸.这适用于简单的代码,但有两个缺点 - 当编译器再次编译相同的代码时,编译器可能会有所不同,而且机器代码分析也不是很简单,因此需要付出努力.
我怎样才能找到编译器如何决定实现我用C++编写的代码?
我担心你在这个问题上运气不好.你试图找出"编译器做了什么".编译器所做的是生成机器代码.反汇编只是一种更易读的机器代码形式,但它不能添加不存在的信息.通过查看汉堡包,你无法弄清楚绞肉机的工作原理.