(注:しょーもない小ネタです)
K&Rで有名な、このコードスタイル。
while(*dst++ = *src++);
コレのように、while();
の()
内の制御式だけでプログラムを書くことは可能か?
言い換えれば・・・人間はwhile();
の幅があれば生きていけるのだろうか?(←これが言いたかった)
Hello_world!
#include <stdio.h>
while(!printf("Hello world!\n"));
//Hello world!
「ピザ」って10回言ってみて
int i=0;
while(printf(++i<n?"ピザ,":"ピザ\n"),i-n);
//ピザ,ピザ,ピザ,ピザ,ピザ,ピザ,ピザ,ピザ,ピザ,ピザ
nの階乗
#include <stdio.h>
int i=0,n=10;
while(n<=1?!(n=1):(i||(i=n-1),(n*=i,--i)));
// n==3628800
FizzBuzz
#include <stdio.h>
int i=0,n=15;
while(++i,printf(i%15?(i%3?(i%5?"%d":"Buzz"):"Fizz"):"FizzBuzz",i),printf(i<n?" ":"\n"),i-n);
// 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz
nを2進数で出力
#include <stdio.h>
#include <limits.h>
int i=0,n=255;
while(i--||(i=sizeof n*CHAR_BIT-1),printf(i?"%d":"%d\n",!!(n&1<<i)),i);
//n=255 -> 00...011111111
//n=2147483647 -> 01...1
//n=-1 -> 11...1
//n=-2147483648 -> 10...0
結論
(ヘッダのインクルードと変数宣言定義を見なかったことにすれば)
生きていける。