| 考虑如下的例子:
 
 
 void func1( int *data )
{    
    int i;     
    for(i=0; i<10; i++)    
    {          
        anyfunc( *data, i);    
    }
}
尽管*data的值可能从未被改变,但编译器并不知道anyfunc函数不会修改它,所以程序必须在每次使用它的时候从内存中读取它。如果我们知道变量的值不会被改变,那么就应该使用如下的编码:
 
 
 void func1( int *data )
{    
    int i;    
    int localdata;     
    localdata = *data;    
    for(i=0; i<10; i++)    
    {          
        anyfunc (localdata, i);    
    }
}
这为编译器优化代码提供了条件。
 
 
 |