Was bedeutet " return 0x1;` bedeuten?
Beim stöbern auf den Quellcode des Projektes auf web ich habe festgestellt, dass einige return
- Anweisung in main sieht komisch zu mir:
int main()
{
/* ... */
return 0x1;
}
Also main zurück 0x1 radix 16
, aber das ist 1 radix 10
! Sollte nicht main zurück 0
?
Dass ist falsch, richtig? Übrigens ist es Okay return 0x0
?
Ob Sie es glauben oder nicht - einige von uns denken, dass es manchmal mehr Natürliche zu denken, in der Basis 16 als Basis 10!
Mir ist es nur ein paar Programmierer, die versuchen, zu zeigen.
Es scheint, dass alle Antworten in diesem thread sind kürzlich nach unten gestimmt... Frage mich was Los ist..
meta-thread über diese downvotes
Ein Hinweis über die Rückgabe 0 vs 1: Es könnte sein, die Gestaltung des Programms, dass es standardmäßig auf Rückkehr 1 (was auf einen Fehler hindeutet). Überprüfen Sie woanders in
Mir ist es nur ein paar Programmierer, die versuchen, zu zeigen.
Es scheint, dass alle Antworten in diesem thread sind kürzlich nach unten gestimmt... Frage mich was Los ist..
meta-thread über diese downvotes
Ein Hinweis über die Rückgabe 0 vs 1: Es könnte sein, die Gestaltung des Programms, dass es standardmäßig auf Rückkehr 1 (was auf einen Fehler hindeutet). Überprüfen Sie woanders in
main()
zu sehen, ob es einen Fall, wo es gibt 0 zurück. So etwas wie: if (test1) { return 0x0; } else if (test2) { return 0x0; } return 0x1;
... Es gibt wahrscheinlich einen Grund für die Rücksendung 1 (sei es für einen Kongress, da das Programm sollte immer behandelt werden, als ein Fehler bedingten Retouren, etc)...InformationsquelleAutor Rizo | 2010-10-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt Sie 1 zurück.
0x1
Ist nur ein hex-Wert von 1.Sind Sie frei, um zurückzukehren, 0 x 0, zu. Es ist nur eine andere Darstellung von 0. Sie verwenden könnte, oktal, auch, wenn du willst 🙂
Bailey: ich hatte gehofft, jemand würde zu fangen,:) Es gibt keine dezimal 0.
genaugenommen
0.0
dezimal -, Druck -, und null, und wird niedergeschlagen zu int in der üblichen Weise zu.Ich meinte (aber nicht ausdrücklich sagen) decimal als Konstante in decimal-literal.
0.0
ist ein Fließkomma-literal. Aber ja0.0
ist dezimal und literal.Sein ein guter job, oktal 0 richtet so gut mit dezimal 0 (integer-literal wise) 🙂
InformationsquelleAutor JoshD
0 x 1 oder 1 macht keinen Unterschied. Es ist die gleiche Anzahl. Folglich, Sie können zurückkehren, 0x0, wie gut es ist nur eine andere Art des Schreibens, 0 im code.
Allerdings davon aus, dass return der Letzte code-Zeile in deiner main-block, du hast Recht, es sollte wohl nicht sein, du 1: nicht-null-return-codes von
main
bedeuten scheitern, und wenn das Programm bis zum Ende läuft, das ist in der Regel ein Zeichen von Erfolg - also sollte Sie 0 zurückgeben.Allerdings ist es durchaus möglich, die Struktur eines Programms ist es den anderen Weg herum, so ist es daher auch möglich, dass du 1 richtig hier.
InformationsquelleAutor Michael Madsen
Einfach ausgedrückt, das heißt übersetzt:
indem Sie '0x' vor der Zahl ermöglicht Ihnen die Eingabe von Hexadezimalen zahlen in den source-code z.B. 0xFF = 255
Seine möglich für Ihre main-Funktion geben Sie jedem Wert, den Sie möchten, so können Sie wirkungsvoll dokumentieren von Fehlerzuständen, die eventuell (oder auch nicht) passiert. Wenn dieses Programm aufgerufen wurde, durch einen Prozess, der hinterfragt und den Rückgabewert dann, wenn Sie ändern Sie den Rückgabewert auf 0 x 0 (oder 0), dann wird das aufrufende Programm kann ändern Ihr Verhalten unerwartet.
InformationsquelleAutor TK.
Ja,
0x1
(hexadezimal 1) ist die gleiche wie1
(dezimal 1). So, die oben ist äquivalent zu der einfachenreturn 1
.main
ist nicht erforderlich, auf 0 zurück.main
"sollte" zurück, was sein Autor will es zurück. Sie wollte schon wieder 1 - kehrten Sie zurück 1. Sie wollte mit der hexadezimalen Schreibweise - Sie verwendet hexadezimaler Schreibweise.Jemand fühlte sich einfach wie Sie es dieser Weg tun. Es gibt keine andere Erklärung.
InformationsquelleAutor AnT
0x1
ist nur eine andere Art des Schreibens1
! Die wörtliche1
ist dasselbe in dezimal-oder Hexadezimalformat. Aber es ist nicht immer wahr, zum Beispieldecimal 10
ist nicht gleichhexadecimal 10
.In diesem Beispiel
main()
ist du 1. Konventionell, wird der Rückgabewert ungleich 0 ist, behandelt als Abschluss erfolglos.InformationsquelleAutor Arun
Den Rückgabewert
main()
ist bestanden, bis zu den externen Aufrufer als Rückgabewert/error code der ausführbaren Datei für den Check-in.e.gERRORLEVEL
oder$?
.InformationsquelleAutor Ignacio Vazquez-Abrams
Heißt es : zurück 1
können Sie zahlen in hexadezimal-format, wie dies 0x...
InformationsquelleAutor Xaqron
0x1 ist nur hexadezimal für 1.
Nach dem kompilieren gibt es keinen Unterschied.
0x0 wäre eqivalent zu 0.
Den Rückgabewert der main-Funktion ist in der Regel nicht durch das system.
Aber wenn das Programm aufgerufen wird, die von anderen Programmen (zB. Installateure) kann überprüft werden, von Ihnen.
Es ist üblich, geben 0 zurück, wenn alles ok ist, und etwas anderes, um anzuzeigen, ein Fehler.
InformationsquelleAutor Ole Dittmann
Ich denke, diese info ist hilfreich, um zu u?
Ergebnisse nach http://codepad.org/
Ergebnisse nach
http://www.comeaucomputing.com/tryitout/
Ergebnisse nach
Durch den Anblick dieses Ergebnis ..ES ist die Behandlung von 1. und 3. Fall als hexadezimal .Und die verbleibenden 2. Fall als anders(nicht bei allen eine Nummer)Ausdruck oder eine variable ..etc
InformationsquelleAutor
Tun Sie wirklich verstehen, was eine base-Nummer bedeutet?
Base-n nutzt n Ziffern von
0
zun-1
. (Abb-1...10)n = Ab*nb + Ab-1*nb-1 + ...A1*n1 + A0*n0So 1 ist eine gültige hexadezimale Zeichen und
0x1
bedeutet 1x160, die von Natur aus gleich 1InformationsquelleAutor phuclv