#include int refsum(int len, int arr[]) { int i; int sum = 0; for (i = 0; i < len; i++) { sum += arr[i]; } return sum; } int sum(int len, int arr[]); int main(void) { #define LENGTH(x) sizeof(x)/ sizeof(x[0]) int a[400] = {0}; int alen = LENGTH(a); int b[5] = {5,4,3,2,1}; int blen = LENGTH(b); int i = alen; while(i--) a[i] = i * b[i%blen]; #define TESTCASE(x,xlen,fkt) \ printf("%s @ %4s (%-6s):\t%9d\n", #x, #xlen, #fkt, fkt(xlen,x)); TESTCASE(a, alen, refsum); TESTCASE(a, alen, sum); TESTCASE(b, blen, refsum); TESTCASE(b, blen, sum); TESTCASE(b, 0, refsum); TESTCASE(b, 0, sum); return 0; }