如何查看编译器生成的代码

The*_* do 3 c++ compiler-construction testing

来自TC++ PL Bjarne的一个例外(ch.5,e.8)中的人要求做以下事情:
''运行一些测试,看看你的编译器是否真的使用指针生成等效的迭代代码并使用索引进行迭代.如果不同可以请求优化程度,看看是否以及如何影响生成代码的质量"'

知道如何吃它和什么?谢谢你的建议.

小智 5

你想编写这样的代码:

int a[] = {1,2,3,4};
int n = 0;
for ( int i = 0; i < 4; i++ ) {
   n += a[i];
}

int * p = a;
for ( int i = 0; i < 4; i++ ) {
   n += *p++;
}
Run Code Online (Sandbox Code Playgroud)

然后,您需要使用编译器选项编译它,使编译器发出汇编语言,并查看它.在启用和不启用优化的情况下执行此操作也很有启发性.