-2

無効な値を -1 に設定しようとしています..しかし、私は魔法の数が好きではありません..誰もが共通の定数のセットを見つける場所を知っています. 私はVS6(っぽい)で働いています。

ネットワーク経由でファイルを読み取ろうとしていますが、ファイルの合計サイズに不適切な値が必要なので、有効な情報が得られたかどうかはわかります.0は有効なサイズであるため、使用できません。

ハーパー・シェルビー 頭に釘を打つ.. ほんの少しの親指。彼はwin32定数について言及しました..まさに私が考えていたものです..リンクを見つけるために:)

4

8 に答える 8

2
#define BAD_VALUE -1

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

于 2008-12-09T21:46:13.140 に答える
2

-1 がシステムの戻り値として無効な値である場合は、内部で定義する必要があります。

const int INVALID_FOO = -1

C との互換性が必要な場合を除きます。

#define INVALID_FOO -1

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

于 2008-12-09T21:46:55.137 に答える
1

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

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

ファイルに。コンパイルします。次に、ファイルにINVALID_FILE_SIZEと入力します。それを右クリックして、INVALID_FILE_SIZEの定義に移動します。VSは、定義された値でいっぱいの多くのWindowsヘッダーファイルの1つを開きます。楽しみ。

于 2008-12-10T00:19:41.770 に答える
1

WinApi で使用される定数を使用する場合は、WinError.h、WinUser.h、および WinNT.h ファイルを確認してください。

于 2010-08-12T12:21:54.080 に答える
1

まず、ファイル サイズが負になることはないため、ファイル サイズに unsigned int を使用する必要があります。現在、無効なファイル サイズは通常最大 int であるため、32 ビットの unsigned int を使用する場合は 0xFFFFFFFF になります。

すなわち

const unsigned int INVALID_FILESIZE = 0xFFFFFFFF;

また、これが Windows 上にある場合、windows.h は無効なファイル サイズをすべて定義します (INVALID_FILE_SIZE)。

于 2008-12-10T04:27:21.600 に答える
1

Windows 定数を装った独自のマジック ナンバー -1 を使用したいとします。これは非常に誤解を招きます。

INVALID_HANDLE が 0 であることをたまたま知ったとします。INVALID_HANDLE でポインタを初期化してもよろしいですか?

char *myMessage = INVALID_HANDLE;

これはどう思いますか?

于 2008-12-09T23:46:19.387 に答える
-1
If bytes_read < 0
    // error
EndIf
于 2008-12-09T23:53:53.943 に答える
-1

0 と 1 (正と負) を直接使用しても問題ないと一般に認められています。

実際、代わりに変数を使用すると、コードがさらに混乱する可能性があります。

更新: OK、回答を書いた後に質問を更新しました。「-1」を算術的に使用している場合は、「-1」だけで問題ありません。エラー コードを返す場合 (コードがたまたま -1 の場合)、const を使用する必要があります。

 const int INVALID_VALUE = -1;
于 2008-12-09T21:47:05.027 に答える