long long z1[] = { 0, 2, 4, 6, 8, 10, 12 };
long long z2[] = { 10, 20, 40, 60, 80, 100, 120 };
+int i;
+
+for(i=0; i < sizeof z1/sizeof z1[0]; i++) {
+ printf("z1[%i]: %ld, z2[%i]: %ld\n", i, z1[i], i, z2[i]);
+}
long long ret = m(&z1[1], &z2[1]);
+printf("ret: %ld\n", ret);
-//printf("ret :%ld %ld %ld\n", ret, z1[1], z2[1]);
+for(i=0; i < sizeof z1/sizeof z1[0]; i++) {
+ printf("z1[%i]: %ld, z2[%i]: %ld\n", i, z1[i], i, z2[i]);
+}
RET(ret == -16 && z1[0] == 0 && z2[0] == 10 && z1[1] == 4 && z1[2] == 6 && z1[3] == 8 && z1[4] == 10 && z1[5] == 10 && z1[6] == 12 && z2[1] == 23 && z2[2] == 43 && z2[3] == 63 && z2[4] == 83 && z2[5] == 100 && z2[6] == 120);
\ No newline at end of file
--- /dev/null
+long fa (long, long, long, long, long);
+long fa_(long, long, long, long, long);
+long fb (long, long, long, long, long);
+long fb_(long, long, long, long, long);
+long fc (long, long, long, long, long);
+long fc_(long, long, long, long, long);
+long fd (long, long, long, long, long);
+long fd_(long, long, long, long, long);
+
+long (*fp[])(long, long, long, long, long) = {fa, fa_, fb, fb_, fc, fc_, fd, fd_};
+char st[sizeof fp/sizeof fp[0]][4] = {"fa ", "fa_", "fb ", "fb_", "fc ", "fc_", "fd ", "fd_"};
+
+#define PAR(a) ((a-'a'+1)*10)
+int i, t, r = 1;
+
+for(i=0; i < sizeof fp/sizeof fp[0]; i++) {
+ t = fp[i](0xdead, PAR('a'), PAR('b'), PAR('c'), PAR('d'));
+ printf("returnwert von %s() ist %3i (erwartet: %3i)\n", st[i], t, PAR(st[i][1]));
+ r = r && (t==PAR(st[i][1]));
+}
+RET(r);
--- /dev/null
+long f(long);
+long g(long, long, long);
+#define ERG(a) ((a-1)-(a-5)-(a-10))
+#define ARG1 -10
+#define ARG2 1333157
+#define ARG3 -35981341
+int ret1 = f(ARG1);
+int ret2 = f(ARG2);
+int ret3 = f(ARG3);
+printf("ret1 ist %8i (sollte %8i sein)\n", ret1, ERG(ARG1));
+printf("ret2 ist %8i (sollte %8i sein)\n", ret2, ERG(ARG2));
+printf("ret3 ist %8i (sollte %8i sein)\n", ret3, ERG(ARG3));
+RET(ret1 == ERG(ARG1) && ret2 == ERG(ARG2) && ret3 == ERG(ARG3));