質問

無効な値を -1 に設定しようとしています。でも、マジックナンバーは好きじゃないんです。共通の定数のセットがどこにあるかは誰でも知っています。私はVS6(っぽい)で作業しています。

ネットワーク経由でファイルを読み取ろうとしていますが、ファイルの合計サイズとして間違った値が必要なので、そのファイルに関する有効な情報が得られたかどうかを知ることができます。0 は有効なサイズなので使用できません。

ハーパー・シェルビーが頭に釘を打ちました。親指だけ少しだけ。彼は win32 定数について言及しました。それはまさに私が考えていたことです..リンクを見つけてください:)

役に立ちましたか?

解決

#define BAD_VALUE -1

編集:元の質問には文脈がありませんでした。修正された質問は、無効なファイル サイズが必要であるため、win32 定数を探していることを示しています。見る windows.h あなたが探している定数は中にあるかもしれないと思います windows.h またはそのサブインクルードの 1 つ。Windows のインクルード ディレクトリを grep します ;-)

他のヒント

-1は、あなたのシステムの戻り値の無効な値である場合は、内部的に定義する必要があります:

const int INVALID_FOO = -1

Cとの互換性が必要とされない限り、ここで場合

#define INVALID_FOO -1

好ましいであろう。それは、標準のMFCまたはWindowsリソースの場合は、INVALID_HANDLEまたは他のWin32-定義された定数のいずれかを使用します。

あなたはあなた自身のマジックナンバー-1、Windowsの定数として偽装を使用したいです。これは非常に誤解を招く恐れがあります。

私はINVALID_HANDLEが0であることを知ることが起こると仮定すると、それはINVALID_HANDLEと私のポインタを初期化するためにOKですか?

char *myMessage = INVALID_HANDLE;

はどのようにこのストライキあなたは?

VSで、新しいWindowsコンソールアプリケーションプロジェクトを作成します。プロジェクトの設定に移動し、[参照のサポートをオンにします。 C ++ファイルを作成し、プロジェクトに追加します。タイプ:

#include <windows.h>
void main(void) {}

ファイルに。それをコンパイルします。今ファイルにINVALID_FILE_SIZEを入力します。その上で右クリックして、INVALID_FILE_SIZEの後藤定義。 VSは、定義された値の完全な多くのウィンドウのヘッダファイルのいずれかを開きます。お楽しみください。

まず最初は、ファイルサイズがマイナスになることはありませんようにファイルサイズのためにunsigned int型を使用する必要があります。今、無効なファイルサイズが最大intは通常、使用した場合のように32ビットのunsigned int型、それは0xFFFFFFFFのだろう。

すなわちます。

const unsigned int INVALID_FILESIZE = 0xFFFFFFFF;
これは窓の上にある場合は、

また、WINDOWS.Hは、無効なファイルサイズすべての準備(INVALID_FILE_SIZE)を定義します。

あなたはWINAPIで使用される定数を使用したい場合は、

、WINERROR.H、WINUSER.HとWINNT.Hファイルをチェックアウトします。

一般的に0と1(ポジティブ&ネガティブ)を直接使用してOKです受け入れられています。

実際には、それはおそらく、あなたの代わりに変数を使用することをさらに混乱コーディング作ります。

アップデート:私は私の答えを書いた後にOK、あなたがあなたの質問を更新しました。あなたが使用している場合は「-1」算術方法で、そしてちょうど「-1」で結構です。あなたがエラーコードを返却している(とコードだけであることを起こる-1)なら、あなたはconstのを使用する必要があります。

 const int INVALID_VALUE = -1;
If bytes_read < 0
    // error
EndIf
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top