#include #include extern void fill_arr1(int* arr, size_t size, size_t row_count); extern void fill_arr2(int* arr, size_t size, size_t row_count); double measure_fill_time(void(*function)(int*, size_t, size_t), int* arr, size_t size, size_t row_count) { const size_t times = 10000000; clock_t begin = clock(); for (size_t i = 0; i < times; i++) { function(arr, size, row_count); } clock_t end = clock(); return (double)(end - begin)/(CLOCKS_PER_SEC); } int main() { const int arr_size = 256; int array1[arr_size]; printf("String methods took %fs to loop 10,000,000 times\n", measure_fill_time(fill_arr1, array1, arr_size, 16)); for (size_t i = 0; i < arr_size; i++) { printf("%d ", array1[i]); } printf("\b \n"); int array2[arr_size]; printf("Lea methods took %fs on to loop 10,000,000 times\n", measure_fill_time(fill_arr2, array2, arr_size, 16)); for (size_t i = 0; i < arr_size; i++) { printf("%d ", array2[i]); } printf("\b \n"); return 0; }