In der C-Sprache, was bedeutet die Rückkehr "~0" bedeuten?

Bin ich den Umgang mit einigen C-code enthält

return ~0;

Was bedeutet das? Es ist ziemlich unmöglich, google für...

  • Google nach "c-Operatoren" und du wirst es finden.
  • jemand wird klug. Es ist das gleiche wie -1.
  • In Fällen wie diesen, müssen Sie denken von alternativen Abfragen, wie "C-Operatoren" oder "C-tilde-operator"
  • Whitlock: ... auf ein Zweierkomplement-Maschine. Es ist negativ null (-0) auf einer einer-Komplement-Maschine, und es ist INT_MIN auf ein signed-magnitude-Maschine.
  • Es ist schon komisch, wie das Wort "clever" in der Programmierung bedeutet meist "dumm". Ich würde die Sache nicht ein konstanter Ausdruck, der bedeutet, verschiedene Dinge auf verschiedenen CPU-Architekturen als "clever" an alle.
  • Ich denke, eine solche Qualifikation ist ein bisschen unhöflich und nicht an Ihrer Stelle auf SO. Kann jemand unwissend sein an bestimmten Orten, ohne und idiot.
  • Nach dem lernen, was Sie tut und Sie durch den code, dessen Verwendung durchaus Sinn macht. In seinem speziellen Fall war es beschränkt auf die Rückgabe eines unsigned int, und auch unsicher ist, der Bogen. Rückkehr ~0 ist, wie nah an der Rückkehr -1 als Autor bekommen konnte
  • Was ist der Zweck, dies zu tun ? Welchen Effekt hat es ? Ich habe gesehen, diesen code in Git-Quellcode zu
  • osager: es wird sichergestellt, dass jedes bit der zurückgegebene Wert eine 1, unabhängig von der arch/Typ. Dies kann wichtig sein, wenn Sie Dinge, die Sie mit Bitmasken oder sind in der Regel tun eine Menge von bit-level-Operationen
  • Das zusätzliche Gewicht gegenüber dem argument, dass "es gibt gute Anwendungsfälle für ~0": Linie 67 von OS X usr/include/dispatch/once.h: if (DISPATCH_EXPECT(*predicate, ~0l) != ~0l) {.

InformationsquelleAutor Mala | 2010-09-14
Schreibe einen Kommentar