ネットでVCのソースを調べるときにchar psz[] = ...のように
変数にpszと付けているのをよく目にするのですが、この意味って
何でしょうか?(何かの略?)
今まで適当に付けてた変数名を統一しようと思っているのですが、
どなたか教えてください。
C言語では文字列専用の型があるわけじゃなくて
最後が0になっているchar型のデータが並んだものを文字列としてます。
検索してみたところ以下のようだね
pointer to a zero-terminated string
これが正式なものかどうかは知らないけど。
wclrp ( 'o')さん有難うございます。
確かにpointer to a zero-terminated stringで検索かけたら出てきました。
自分でもpszで調べてはいたのですが、、、
要は文字列だよって明示するためのものだったのですね。
でもpszよりpzsのほうが順番的には、って思うのですが、、、(そこはいっか)
解決です。有難うございました!
> でもpszよりpzsのほうが順番的には、って思うのですが、、、(そこはいっか)
pointer to a string terminated by zero
語順に拘るならこう。Googleによるとこっちの方が多く使われている。
> ネットでVCのソースを調べるときにchar psz[] = ...のように
ちょっと気になったのですが、
文字配列そのもののときは、pszではなくszが使われるのではないでしょうか。
個人的には、ゼロで終わらない文字列を扱ったことが無いので、
szという形式はいまいち馴染めず、char str[]や、char* pStrと書いていますが。
> ちょっと気になったのですが、
> 文字配列そのもののときは、pszではなくszが使われるのではないでしょうか。
char psz[] に一致する日本語のページ 約 1,720,000 件中 1 - 10 件目 (0.16 秒)
char sz[] に一致する日本語のページ 約 11,900 件中 1 - 10 件目 (0.03 秒)
だからどうということもないのですが、変数pszはchar型へのポインタですし、
文字列の先頭の文字を指しているchar*型の変数です。
意味的にもpszで良いと思いますよ。
> 個人的には、ゼロで終わらない文字列を扱ったことが無いので、
> szという形式はいまいち馴染めず、char str[]や、char* pStrと書いていますが。
今、システムハンガリアンを積極的に薦めている人はあまりいないのでは?
昔そんな書き方が流行った、と覚えておけば十分なのかも。
頻繁に目にするならば、pszは多分文字列を指す、とか自然と覚えるでしょう。
http://always-pg.com/glossary/kana06_ha/hungarian_notation.html
個人的には、使うのであれば、文字配列には sz、ポインタには psz ですね。
char szText[256];
char * pszText = szText;
char * pszBuffer = (char*)malloc(256);
> 文字列の先頭の文字を指しているchar*型の変数です。
ちょっといい加減に書きすぎたかな。反省。
char str[] = 1234; と書いた場合のstrの型はchar[5]ですね。
シャノンさん
> 個人的には、使うのであれば、文字配列には sz、ポインタには psz ですね。
ハンガリアンにとってはきっと諸悪の根源である、Programming Windows
(この本のせいでアプリケーション ハンガリアンまで駆逐されることに)
をパラパラ見てみると、文字配列に psz を使っている例は
みつかりませんでした。ただ、ポインタに sz を使っている例はありました。
この本ではあまり厳密ではないのか、私には理解できないニュアンスを
著者は感じ取っているのか。まーどーでもいいことですが。
そういえば、lpsz を使っている場合もありますね。
l は long ですね。near とか far の時代の名残。
今では psz と lpsz に違いはありません。