CS-APP:Section 5.1,Memory aliasing:same function implementation ,different test result!

same function implementation ,different test result!

 1  int  f( int );
 2 
 3  int  func1( int  x)
 4  {
 5       return  f(x)  +  f(x)  +  f(x)  +  f(x);
 6  }
 7 
 8  int  func2( int  x)
 9  {
10       return   4 * f(x);
11  }

 

 

testing code1:

1   /*
 2  ============================================================================
 3  Name        : test.c
 4  Author      : Gump Yin
 5  Version     :
 6  Copyright   : www.cnblogs.com/BpLoveGcy/
 7  Description : Hello World in C, Ansi-style
 8  ============================================================================
 9  
*/
10  
11  #include  < stdio.h >
12  #include  < stdlib.h >
13  
14   int  f( int );
15  
16   int  func1( int  x)
17  {
18       return  f(x)  +  f(x)  +  f(x)  +  f(x);
19  }
20  
21   int  func2( int  x)
22  {
23       return   4 * f(x);
24  }
25  
26   int  counter  =   0 ;
27   int  f( int  x)
28  {
29       return  counter ++ ;
30  }
31  
32   int  main( void ) {
33      printf( " func1(5)=%d\n " ,func1( 5 ));
34  
35      printf( " func2(5)=%dn " ,func2( 5 ));
36       return  EXIT_SUCCESS;
37  }
38   //  testing result:
39   /*
40 func1(5)=6
41 func2(5)=16
42 
43 
*/
 

 

 

 

testing code2:

 1  /*
 2   ============================================================================
 3   Name        : test.c
 4   Author      : Gump Yin
 5   Version     :
 6   Copyright   : www.cnblogs.com/BpLoveGcy/
 7   Description : Hello World in C, Ansi-style
 8   ============================================================================
 9    */
10 
11  #include  < stdio.h >
12  #include  < stdlib.h >
13 
14  int  f( int );
15 
16  int  func1( int  x)
17  {
18       return  f(x)  +  f(x)  +  f(x)  +  f(x);
19  }
20 
21  int  func2( int  x)
22  {
23       return   4 * f(x);
24  }
25 
26  int  counter  =   0 ;
27  int  f( int  x)
28  {
29       return  x ++ ;
30  }
31 
32  int  main( void ) {
33      printf( " func1(5)=%d\n " ,func1( 5 ));
34 
35      printf( " func2(5)=%d\n " ,func2( 5 ));
36       return  EXIT_SUCCESS;
37  }
38  /*
39  testing result:
40  func1(5)=20
41  func2(5)=20
42  */

 

 


 

 

转载于:https://www.cnblogs.com/BpLoveGcy/archive/2010/04/08/1706832.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值