【C++】_TやらLやらについて
問題
たまに見る_TやらLやらがややこしい。
文字列を扱うときに使うものというのはわかっているが、どっちが何するものかも迷う。
理解
マクロ | 意味 |
---|---|
_T("text") | textのT |
TEXT("text") | そのまんまのtext(_Tと同じ) |
L"" | リテラル |
T("")の使い方(TEXT("")も)
なんでも_Tはマルチバイトとユニコードの違いをなくすてきな、万能なものみたい。
そのあたりの設定に関しては、プロジェクトのプロパティに記載あり。
(構成プロパティ > 詳細 > 文字セット)
以下のように使う。
auto text = _T("text");
たまにTCHAR使えないプロジェクトがあるけど、基本的にはこれでOK。
L""の使い方
ユニコード文字列という意味を表すものみたい。
いつ使うのかいまいちわからないけど、プロジェクトとしてユニコード文字列を使うとなった時は、
以下のように文字列定義する。
auto text = L"text";
ちなみに
以下のマイクロソフトのサイト見て気づいたけど、シングルクォーテーションで囲むか、ダブルクォーテーションで囲むかで意味が違ったりするんや。。。
docs.microsoft.com