Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        4年前关闭。
                                                                                            
                
        
#include <stdio.h>
#include <time.h>
unsigned int decrement(unsigned int value);
main()
{
    clock_t start, end;
    double cpu_time_used;
    register unsigned int value;
    value = 4294967;
    start = clock();
    decrement(value);
    end = clock();
    cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
    printf("cpu_time_used %lf\n",cpu_time_used);
}

unsigned int decrement(register unsigned int value)
{
    int i;
    for(;value;value--)
    {
        printf("loop value %u\n",value);
    }
    return 0;
}


我试图递减一个大整数值用较少的执行时间,以实现我声明的变量与寄存器关键字等我还没有收到任何优化结果从该寄存器无符号整型值而运行此程序与/不使用该寄存器关键字。如果我错了,请纠正我。并请分享我们是否还有其他方法可以以最少的执行时间减少较大的数量。

例如,这里提到的程序只是带有register关键字(一种减少执行时间的优化方法),这个问题的主要议题是如何以最少的执行时间减少较大的数字。

最佳答案

在不了解逻辑的情况下,告诉我decrement(x)应该始终为零,这还有另一个问题:
value = value--;正在调用未定义的行为,因为value--是具有副作用的后递减操作。您需要value--;value -=1。但不是两者。

10-06 04:50