アカウント名:
パスワード:
#define FALSE -1
プリプロセッサ系は卑怯な気がするなぁ。#define car <st#define id .h>
で、
#include cardioid#include carringid
とかやられたら、誰にも読めない。
「プリプロセッサ系は卑怯」なんてことは全然ありませんが、審査するのは人間ですから、ありきたりな手を使っても良い評価は得られません。実際、ガイドライン [ioccc.org]の Our Likes and Dislikes の節に
Doing masses of #defines to obscure the source has become 'old'.
と書いてある通り、マクロを使って読みにくくしていることしか見るべきところがないようなエントリーは古臭いというのが評価基準です。
ちなみに、 #2052882 [srad.jp] の人も書いている通り、 #2052871 のコードはコンパイルエラーだと思いますけど……。マクロ展開は字句解析の後で起こるので、 car というマクロが定義されていても cardioid というトークンには影響を与えません。 (なんてのは当たり前過ぎる話なので、何か引っかけがあるのかと思いますが、わかりません。)
プリプロセッサを手動で反復適用するとかすれば、あるいは。ああ、でも、n 回目のプリプロセスのためのディレクティブが n - 1 回まではエスケープされるように書かなきゃならなくなるのか。
あなたの望むようには展開されない
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家
優勝はもらった (スコア:0)
#define FALSE -1
Re: (スコア:2)
#define END ;}
Re:優勝はもらった (スコア:0)
プリプロセッサ系は卑怯な気がするなぁ。
#define car <st
#define id .h>
で、
#include cardioid
#include carringid
とかやられたら、誰にも読めない。
Re:優勝はもらった (スコア:4, 参考になる)
「プリプロセッサ系は卑怯」なんてことは全然ありませんが、審査するのは人間ですから、ありきたりな手を使っても良い評価は得られません。実際、ガイドライン [ioccc.org]の Our Likes and Dislikes の節に
と書いてある通り、マクロを使って読みにくくしていることしか見るべきところがないようなエントリーは古臭いというのが評価基準です。
ちなみに、 #2052882 [srad.jp] の人も書いている通り、 #2052871 のコードはコンパイルエラーだと思いますけど……。マクロ展開は字句解析の後で起こるので、 car というマクロが定義されていても cardioid というトークンには影響を与えません。 (なんてのは当たり前過ぎる話なので、何か引っかけがあるのかと思いますが、わかりません。)
Re: (スコア:0)
プリプロセッサを手動で反復適用するとかすれば、あるいは。
ああ、でも、n 回目のプリプロセスのためのディレクティブが n - 1 回まではエスケープされるように書かなきゃならなくなるのか。
Re: (スコア:0)
あなたの望むようには展開されない