Gibt es einen Grund, warum für ssize_t eine Ganzzahl mit Vorzeichen verwendet wird?C++

Programme in C++. Entwicklerforum
Anonymous
 Gibt es einen Grund, warum für ssize_t eine Ganzzahl mit Vorzeichen verwendet wird?

Post by Anonymous »

Aus den Manpages habe ich herausgefunden, dass size_t den Bereich von 0 bis SIZE_MAX hat und ssize_t den Bereich von -1 bis SSIZE_MAX hat. Nachdem ich diese Werte auf einem 64-Bit-System gedruckt habe, erhalte ich die folgenden Ergebnisse:

Code: Select all

ssize_t max: 9223372036854775807
size_t max: 18446744073709551615

Code: Select all

int main() {
std::println("ssize_t max: {}\nsize_t max: {}", SSIZE_MAX, SIZE_MAX);
}
Gibt es einen Grund für die Verwendung einer vorzeichenbehafteten Ganzzahl, um die Speicherung negativer Werte zu ermöglichen, anstatt ein Makro wie dieses zu erstellen (als Beispiel für 64-Bit-Maschinen):

Code: Select all

#define OPERATION_ERROR 0xFFFFFFFFFFFFFFFF
und weiterhin eine vorzeichenlose Ganzzahl verwenden, sodass Sie den doppelten Bereich haben?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post