Schutz vor versehentlicher Zuweisung:
In einigen neueren Sprachen wie C# ist es nicht erforderlich, den lvalue auf der rechten Seite zu platzieren.
In C# wird das Folgende nicht kompilieren:
if (variable = 0)
Also ist es in C# nicht nötig, das Folgende zu tun:
if (0 == variable)
Diese Praxis ist in C/C++-Programmen sehr verbreitet, um versehentliche Zuweisungen zu vermeiden, die als Vergleiche gedacht waren.
Mehrere Rückgabepunkte:
Das Verbieten von mehreren Rückgabepunkten wurde hauptsächlich durchgesetzt, weil man nicht vergessen möchte, seine Variablen zu löschen.
Stattdessen brauchen Sie sich nur um RAII zu kümmern.
Haftungsausschluss: Es gibt immer noch gute Gründe, mehrere Rückgabepunkte zu minimieren, und manchmal ist es nützlich, nur einen zu haben.
Headerdateien
In den meisten modernen Sprachen trennen Sie Ihren Code nicht in Deklaration und Definition.
C++-Definitionen für mehrere Headerdatei-Imports
In C++ haben Sie oft Folgendes getan:
#ifdef _MYFILE_H_
#define _MYFILE_H_
//code here
#endif
Manchmal würde dies jedoch zu etwas wie folgendem führen:
#ifdef _MYFILE_H_
#define _WRONGNAME_H_
//code here
#endif
Ein besserer Weg, dies zu tun, sofern Ihr Compiler dies unterstützt:
#pragma once
C-Variablendeklarationen
Mit C mussten Sie alle Variablen am Anfang Ihres Codeblocks deklarieren. Auch spätere Versionen von C erforderten dies nicht, aber die Leute machen es immer noch.
Ungarische Notation: (Lesen, enthält einige einzigartige Informationen)
Ungarische Notation kann immer noch gut sein. Aber ich meine nicht diese Art von ungarischer Notation.
Zuvor war es in C sehr wichtig, Dinge wie:
int iX = 5;
char szX[1024];
strcpy(szX, "5");
haben, da Sie vollständig typunsichere Funktionen haben könnten wie:
printf("%i", iX);
Wenn ich die Zeichenfolge x genannt hätte, wäre mein Programm abgestürzt.
Natürlich ist die Lösung, nur typsichere Funktionen zu verwenden. Also solange Sie das tun, brauchen Sie in diesem Sinne keine ungarische Notation.
Aber es ist trotzdem eine gute Idee, wie von Joel in seinem Sinn diskutiert.