#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; } i have tried decrement large integer value less execution time, achieve declaring variable register keyword register unsigned int value have not received optimization results while run program with/without using register keyword. please correct me if wrong. , please share if have other method decrement larger number minimum execution time.
program mentioned here example register keyword(one of optimization method reduce execution time) main agenda of question how decrement larger number minimum execution time.
without understanding of logic telling me decrement(x) should zero, there problem: value = value--; invoking undefined behaviour, value-- post decrement operation having side effects. want either value--; or value -=1. not both.
Comments
Post a Comment