- 论坛徽章:
- 0
|
- #include <stdio.h>
- struct {
- short a;
- short b;
- } yy;
- int main(int argc, char **argv)
- {
- int i, j;
- short *ptr1 = &yy.a;
- int *ptr2 = &yy.a;
- for(j=0;j<5;j++){
- for(i=0;i>=0;i++){
- ptr1[0] = 1;
- ptr1[1] = 2;
- }}
- return 0;
- }
复制代码- #include <stdio.h>
- struct {
- short a;
- short b;
- } yy;
- int main(int argc, char **argv)
- {
- int i, j;
- short *ptr1 = &yy.a;
- int *ptr2 = &yy.a;
- for(j=0;j<5;j++){
- for(i=0;i>=0;i++){
- ptr2[0] = 1;
- }}
- return 0;
- }
复制代码
以上代码,本以为把两个short的赋值换成1个int的赋值,可以提高性能。然而测试结果标明第一段速度快于第二段。
这是汇编的差异,第一段明显比第二段多了好几行,为啥更快??
|
|