C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: MAX_PATHのアンダーバー有り無しについて


(過去ログ 120 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■70373 / inTopicNo.1)  MAX_PATHのアンダーバー有り無しについて
  
□投稿者/ nobb (22回)-(2014/03/17(Mon) 17:37:19)

分類:[C/C++] 

2014/03/17(Mon) 17:38:44 編集(投稿者)

== タイトルのアンダーバーが見づらかったので編集しました ==

MFCで開発を行う際に、今まではパスの最大文字数に MAX_PATH(先頭アンダーバー無し) を使用していましたが、
色々なサイトで _MAX_PATH(先頭アンダーバー有り) を使用しているものもよく見かけます。

どちらも260を定義しているので、結果としては変わらないのですが、
使い分けというか、お作法みたいなものってあるのでしょうか?
引用返信 編集キー/
■70374 / inTopicNo.2)  Re[1]: MAX_PATHのアンダーバー有り無しについて
□投稿者/ とっちゃん (210回)-(2014/03/17(Mon) 17:54:28)
とっちゃん さんの Web サイト
No70373 (nobb さん) に返信
> MFCで開発を行う際に、今まではパスの最大文字数に MAX_PATH(先頭アンダーバー無し) を使用していましたが、
> 色々なサイトで _MAX_PATH(先頭アンダーバー有り) を使用しているものもよく見かけます。
>
> どちらも260を定義しているので、結果としては変わらないのですが、
> 使い分けというか、お作法みたいなものってあるのでしょうか?

MAX_PATH は、Windows OS 用の開発キット(以下SDK)で定義された識別子で
_MAX_PATH は、C(C++) 標準ライブラリ(以下CRT)で定義された識別子です。

MFCは、SDKに依存していますので(CRTにももちろん依存しています)
MFCでの開発ならSDK定義の識別子でも構わないと思いますよ。

引用返信 編集キー/
■70376 / inTopicNo.3)  Re[2]: MAX_PATHのアンダーバー有り無しについて
□投稿者/ 774RR (138回)-(2014/03/17(Mon) 18:26:08)
こんな記事があった
http://comp.newsgroups.archived.at/os.ms-windows.programmer.win32/200504/05042821903.html
ので JIS X3010:2003 を確認してみた。

7.20 一般ユーティリティ <stdlib.h>
<snip> 定義するマクロは NULL および次の4つのマクロとする <snip>

ということで newsgroup archive の記事に同意しまくっておこう。

基本的に 標準C/C++ 合致の範囲でプログラムを書きたいんだけど、一部逸脱がある
という意図を示すのであれば <stdlib.h> の _MAX_PATH を使う。

標準 C/C++ に則る気がなくて Windows 依存なプログラムであるという意図を示すなら
<windef.h> (は直接 include すべきでなく <windows.h> を使う必要がある) の MAX_PATH

ってところだろう。MFC を使うなら後者なわけだし MAX_PATH でいいんぢゃないかな。

引用返信 編集キー/
■70385 / inTopicNo.4)  Re[3]: MAX_PATHのアンダーバー有り無しについて
□投稿者/ nobb (23回)-(2014/03/18(Tue) 18:02:30)
2014/03/18(Tue) 18:03:28 編集(投稿者)

== 解決チェック忘れの為編集 ==

お二方ともご回答ありがとうございます。

・標準C/C++に則るなら「_MAX_PATH」
・MFCを用いるなら「MAX_PATH」
として覚えておきます。

ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -