]> Pileus Git - ~andy/sfvlug/blobdiff - c/src/duff.c
Add C notes.
[~andy/sfvlug] / c / src / duff.c
diff --git a/c/src/duff.c b/c/src/duff.c
new file mode 100644 (file)
index 0000000..9e7074e
--- /dev/null
@@ -0,0 +1,28 @@
+#include <stdio.h>
+#include <string.h>
+
+void duff(const char *str)
+{
+       int len = strlen(str);
+       int div = len / 8;
+       int rem = len % 8;
+
+       switch (rem) {
+               case 0: while (div--) {
+                               putchar(*str++);
+               case 7:         putchar(*str++);
+               case 6:         putchar(*str++);
+               case 5:         putchar(*str++);
+               case 4:         putchar(*str++);
+               case 3:         putchar(*str++);
+               case 2:         putchar(*str++);
+               case 1:         putchar(*str++);
+                       }
+       }
+}
+
+int main(int argc, char **argv)
+{
+       duff("Hello, World\n");
+       return 0;
+}