Frage

Ich versuche, einen ungültigen Wert auf -1 gesetzt .. Aber ich weiß nicht wie magische Zahlen .. Wer weiß, wo eine Reihe von gemeinsamen Konstanten zu finden. Ich arbeite in VS6 (ish).

Ich versuche, eine Datei aus über ein Netzwerk zu lesen, und ich brauche einen schlechten Wert für die Gesamtgröße der Datei, damit ich weiß, ob ich gültige Informationen über sie .. 0 ist eine gültige Größe so kann habe ich nicht verwende das.

Harper Shelby HIT DES Nagel auf den Kopf .. Nur ein wenig Daumen. Er erwähnte die win32 Konstanten .. das ist genau das, was ich darüber nachdachte .. Jetzt einen Link zu finden:)

War es hilfreich?

Lösung

#define BAD_VALUE -1

EDIT: die ursprüngliche Frage hatte keinen Zusammenhang. Die überarbeitete Frage gibt eine ungültige Dateigröße wollen und sind somit für die win32 Konstanten suchen. Schauen Sie sich windows.h ich denke, die Konstante, die Sie suchen, kann in windows.h oder einem seiner Unter umfasst. grep Ihre Fenster schließen Verzeichnis; -)

Andere Tipps

Wenn -1 ein ungültiger Wert für einen Rückgabewert in dem System ist, sollten Sie es intern definieren:

const int INVALID_FOO = -1

es sei denn, C-Kompatibilität ist erforderlich, wobei in diesem Fall

#define INVALID_FOO -1

wäre vorzuziehen. Wenn es sich um eine Standard-MFC oder Windows-Ressource ist, verwenden Sie INVALID_HANDLE oder eine der anderen Win32-Konstanten definiert.

Sie möchten Ihre eigene magische Zahl verwenden -1 als Windows-Konstante verkleidet. Das ist sehr irreführend.

Angenommen, ich weiß zufällig, dass INVALID_HANDLE ist 0. Ist es in Ordnung, meine Zeiger mit INVALID_HANDLE zu initialisieren?

char *myMessage = INVALID_HANDLE;

Wie funktioniert dieser Streik Sie?

In VS, Erstellen Sie ein neues Windows-Konsole Anwendungsprojekt. Gehen Sie in Projekteinstellungen und schalten Sie Browse-Unterstützung. Erstellen Sie eine C ++ Datei und fügen Sie es dem Projekt hinzu. Typ:

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

in die Datei. Kompilieren. Nun INVALID_FILE_SIZE in die Datei ein. Rechten Maustaste darauf und gehe zu Definition von INVALID_FILE_SIZE. VS öffnet eine der vielen Fenster Header-Dateien voll von definierten Werten. Genießen Sie.

Das erste, was ist, sollten Sie eine unsigned int für die Dateigröße verwenden als eine Dateigröße nie negativ ist. Jetzt eine ungültige Dateigröße ist normalerweise der max int so im Fall der Verwendung eines 32-Bit unsigned int wäre es 0xFFFFFFFF

d.

const unsigned int INVALID_FILESIZE = 0xFFFFFFFF;

Auch wenn diese an den Fenstern sind, definiert windows.h ungültige Dateigröße all bereit (INVALID_FILE_SIZE)

Wenn Sie durch WinApi verwendeten Konstanten verwenden, überprüfen Sie die Winerror.h, Winuser.h und WinNT.h Dateien.

Es ist allgemein akzeptiert, die 0 und 1 (positiv und negativ) sind OK direkt zu verwenden.

In der Tat, es wird Sie wahrscheinlich noch verwirrender machen Code stattdessen eine Variable zu verwenden.

Update: OK, Sie auf dem Laufenden Ihre Frage, nachdem ich meine Antwort geschrieben. Wenn Sie mit „-1“ in einer arithmetischen Art und Weise, dann nur „-1“ ist in Ordnung. Wenn Sie einen Fehlercode zurückgeben (und der Code passiert einfach -1 sein), dann sollten Sie eine const verwenden.

 const int INVALID_VALUE = -1;
If bytes_read < 0
    // error
EndIf
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top