Add header guards
Questionable extraction of the do { block } while(0) trick
Use the excelent portable timer functions by David Robert Nadeau

See:
 http://nadeausoftware.com/articles/2012/03/c_c_tip_how_measure_cpu_time_benchmarking
 http://nadeausoftware.com/articles/2012/04/c_c_tip_how_measure_elapsed_real_time_benchmarking