次のコードをコンパイル出来るようにしなさい。

トラックバック(0) コメント(3)

次のソースコードをコンパイル出来るようにしなさい。
なお、前後に文を追記する事は幾らでも可能とします。
(※ただし、ダブルクォーテーションで囲うなど無意味化する事は除く)

 

if(;;) nakanaide('-');

 

(続きに答えがあります)

Twitterにて「まぁ、コンパイルできねぇよとか怒られるわけですけども。」と言う話題がありまして。んじゃ俺がコンパイル出来るようにしてやんよ!と思ったのが発端。

で、答えは以下の通りです。

 

#define if for
void nakanaide(char c){}
void main(){
 if(;;) nakanaide('-');
}

 

「'-'」はそのままchar一文字として扱っちゃえば何の問題もないですね。
ifの中に(;;)ってのはなかなかどうしようもないので、ifをforに置き換えてやったらすんなり行けました。

 

 

このくだらない企画。実は以前に、どっかの別のサイトの日記で似たような話題がありました。
面白そうだなぁ、と思いつつも余りのレベルの高さについて行けなかった訳ですが・・・(何

で、まぁ、その日記の中で、上のようなテクニックを使ったりしていたんですね。

実際にはもっと高度なテクニックを幾つも使っていたのですが・・・まぁ、到底理解できなかったですね。(苦笑
とりあえず、そのうちの幾つかは「へー。なるほどなー。」と思いました。上に上げた#defineで全く別のものに置き換えちゃう他に、#、##による文字列連結とか。・・・あと・・・なんだっけ・・・てか当時の自分にはそれくらいしか理解できなかった気がする。(何

 


とりあえずまぁそんな無意味で、くだらなーい企画なのですが、結構頭の体操になります。
また、色々とあれこれ捏ね繰り回していくうちに、新たなCの側面を見つけられるかも知れません。
実際のプログラミングで役立つかどうかは分かりませんが・・・いや、きっと何かの機会に役立つはず・・・!(何

まぁそうでなくとも、「固定観念に捉われず、最適解を導き出す」と言うのはプログラマにとって凄く大事な事ですので、是非、自分で色々と問題を考えて、アタックしてみると良いでしょう。

 

とりあえず以下に、もう一つ問題を挙げておきますね。

 


nakanaide('-')/ gusun(;;)

 

 

答えはそのうち、これのコメント欄か、別の日記かに起こします。

トラックバック(0)

このブログ記事を参照しているブログ一覧: 次のコードをコンパイル出来るようにしなさい。

このブログ記事に対するトラックバックURL: http://www.nwhite.info/mt4/mt-tb.cgi/104

コメント(3)

彼方.K : 2008年10月29日 15:16

ちょ、いつの間にこんな企画になってんのwwwww
発端は俺の発言とはいえ、俺の扱える言語ではその手を使えないのよね多分。。。PHPとかPerlとか。

PHPとかPerlはあんま詳しくないけど、多分defineとかなかった気がするし、無理だろうねぇ・・・。
$とか入ってたりするとPerl有利なんだろうけどね。(何

彼方.K : 2008年10月31日 06:18

defineはあるけど、定数のみなんよ。マクロ展開はしないのだわ。

コメントする

最近のブログ記事

先日の回答例とIOCCC
先日の「nakanaide('-')/…
次のコードをコンパイル出来るようにしなさい。
次のソースコードをコンパイル出来るように…
アナログテレビとデジタルテレビ
アナログテレビ「それでは、7時のニュー…
Twitter (一行日記的運用):