2009-03-25から1日間の記事一覧
ずいぶん前に話題にはなっていたようだけど。 #include <stdio.h> static int sum(int n) { if (n == 1) { return 1; } else { return n + sum(n - 1); } } int main() { printf("%d\n", sum(100)); return 0; } .file "foo.c" .text .p2align 4,,15 .def _sum; .scl </stdio.h>…
※末尾再帰の理解が間違っているので参照しないでください(2015/08/07 12:17)一応。 #include <stdio.h> static int sum(int n, int r) { if (n == 1) return r; return sum(n - 1, r + n); } int main() { printf("%d\n", sum(5, 0)); return 0; } ; Listing generat</stdio.h>…
下と同じソース。callは無くなったけど、_sumまではジャンプして、結局スタックを積んでるような。 「-O3」にしたら最適化された。 .file "foo.c" .text .p2align 4,,15 .def _sum; .scl 3; .type 32; .endef _sum: pushl %ebp movl %eax, %ecx movl %esp, %…
なんで「a = 9999-99-99 99:99:99」みたいな日時リテラルって見かけないんだろう? 数値とかと見分けつかないからかなぁ?