パズル
次の C99 プログラムを実行すると、何が表示されますか。
(1)
#include <stdio.h> void f(int x) { } void (*g(int x))(int) { return f; } int main() { g(puts("Hello"))(puts("World")); }
(2)
#include <stdio.h> int f(int x, int y) { if (x > y) if (y != 0) return x / y; else if (x != 0) return y / x; return -1; } int main() { printf("%d", 1 << f(2, 8)); }
(3)
#include <stdio.h> int main() { printf("%d", sizeof(32768) * sizeof(char) == sizeof(0x8000)); }
怒らない人だけ続きを見て下さい。
(1) 不定
(2) 未定義
(3) 処理系定義