2017年05月 / 04月≪ 12345678910111213141516171819202122232425262728293031≫06月

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--:--  |  スポンサー広告  |  EDIT  |  Top↑

2009.09.20 (Sun)

プログラミングメモ ”define と ワイド文字列”

とあるC++のソースを呼んでいて、わけのわからないものがあった。

#define __T(x) L ## x

「 L ## x 」はどういう意味だろうと思い、ぐぐったら、ワイド文字列の処理を行うものだと判明。

たとえば、「_ _T("abc") 」 は 「 L"abc" 」 に展開されるらしい。
そして、 「L"abc"」 というのはワイド文字列の 「 "abc" 」 という意味らしい。
ワイド文字列なんて完全に忘れてた。
「##」 はダブルクオテーションで囲む、といった意味だろうかね。
[2009/09/21:追記] 「##」の意味は、コメントに詳細有り。

Yahoo知恵袋

テーマ : プログラミング ジャンル : コンピュータ

17:57  |  プログラミング系  |  TB(0)  |  CM(2)  |  EDIT  |  Top↑

*Comment

おぉichiさん、どうも。
ワイド文字列なんて、そうは使わないですよね~。

それにしても、「#」と「##」にそんな意味があったとは・・・。
めんどくさくて、推測したまま調べなかったのですが、危うく勘違いしたままになる所でした。
2番目の例が、良い比較対象になってわかりやすいですね。

わざわざ知らせてくれてありがとうございます。
Gasser |  2009.09.21(月) 15:02 |  URL |  【コメント編集】

ワイド文字なんて今まで使ったことがない…。
調べてみましたが、##は前後の字句連結だそうです。
ちなみに#が文字列化だそうです
#define __T(x) L##x
__T("aaa") → L"aaa"

#define __T(x) L###x
__T(aaa)   → L"aaa"

恐らくこんな感じかと。
ichirin2501 |  2009.09.20(日) 21:45 |  URL |  【コメント編集】

コメントを投稿する

URL
COMMENT
PASS  編集・削除するのに必要
SECRET  管理者だけにコメントを表示  (非公開コメント投稿可能)
 

▲PageTop

*Trackback

この記事のトラックバックURL

→http://gasser.blog114.fc2.com/tb.php/368-5cf5b149

この記事にトラックバックする(FC2ブログユーザー)

この記事へのトラックバック

▲PageTop

 | BLOGTOP | 

 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。