所以我们说我们有一个类:
class Rectangle {
int width, height;
public:
void set_values (int,int);
int area() {return width*height;}
};
void Rectangle::set_values (int x, int y) {
width = x;
height = y;
}
和这个对象:
Rectangle rect;
rect.set_values (3,4);
组装后会是什么样?
#1 楼
如https://reverseengineering.stackexchange.com/a/5957/1562中所述,它取决于编译器(不同的编译器将生成不同的机器代码和数据结构)。但是,您可能想要请参阅“反转C ++”,因为它在显示大多数编译器如何编译C ++类方面做得很好。评论
反向C ++论文是无价的。
–雅各布·珀西(Jacob Persi)
17年3月3日在13:20
评论
即使对于简单的C代码,汇编输出也取决于编译器和编译器选项。要查看各种编译器中的输出情况,请使用GCC Godbolt编译器资源管理器