_TCHAR / TCHAR について考える

頭の T って、何の略だろう…
テキストマクロ _TEXT から来ているのでは。意味合いとしてはinternationalized textまたはgeneric textっぽいけど。

TCHARと_TCHAR
TCHARと_TCHARのどちらを使うか悩むこともあるんだけど、tchar.hにおいて_TCHARは常に定義されていて、TCHARは__STDC__が未定義なら定義されるようになっている。
これは、

  • Windowsの世界では標準なので、アンダーバーをつけない
  • ANSI/ISO Cの世界では標準ではないので、アンダーバーをつける

という原則に従っていて、すなわち、

ということを推奨しているのだろう。