単純なコードに対する置換として動作。そのため内容が構文エラーであっても置換された結果が構文として正しいなら許容される。書き換えるなどのハックが横行していたものだ。一つの特徴として、複数定義された場合は後勝ちになる。@""と定義した場合は後に定義されたものが置換対象となる。より定義状態で条件分岐するものだが、いかにも冗長である。redefinedと警告してくれるのだが、それでも後勝ちの定数はそのまま使用されてしまう。これを防ぐためコンパイラーの警告レベルをあげてエラーにする手もある。した「運用による工夫」なしに標準でエラーにしたいところ。定数化しやすくなった。age;";と書き換える。系を定数として宣言する際はポインターの示すものに注意すること。この方法を見かけないので素で書いている。文のように長くて可読性を求められるものを単一行に定義するのはつらい。構文に基づいてインデントしたくなる。サポートしているのだろうか。よる連結を利用する手もあるかも?だけど。Overflowを見つけた。独自の方法が紹介されている。言語サポートについて文書化しました。いう更新履歴はあるものの当該項目は見当たらず残念。指摘していただけると助かります。方法はちゃんとコンパイルできて期待どおり動く。動作することを確認できた。渡すと結合された結果がちゃんと出力される。この機能により文字列の定義における自由度は格段に向上した。好きなようにインデントできて嬉しい。呼ぶのは語弊があるだろう。それともうひとつ注意点がある。age;";こんな感じに結合されて成立しなくなる。そのため結果を意識しながら定義すること。各行の末尾に空白を入れるとするのがよいだろう。空白の重複は無視されるので「行末へ空白を入れる」ぐらいの単純化されたルールでもよい。サポートされることを願っている。akabeko.me。