In mehreren Sprachen gibt es eine Konvention, den Bezeichner _
für "egal" Variablen zu verwenden, die niemals referenziert werden sollen. Zum Beispiel könnten Sie in Scheme/Lisp
(let* ((x ...)
(_ ...<some side effect depending on x>)
(y ...<something making use of the side effect's result>))
...)
In diesem Fall schreiben gibt es kein Problem mit Scoping da Sie _
so oft neu zuordnen können, wie Sie möchten. In C/C++ ist diese Konvention nicht durchführbar, da häufig mehrere Verwendungen von _
miteinander kollidieren würden.Es ist nicht ignoriert Parameter erforderlich, da Sie nur sie ganz weglassen:
int fun(int a, int, int b) { return a + b; }
jedoch als einzige Größe Ersatz in einer Struktur (für die er hier verwendet wird), können Sie nicht die Kennung nicht angeben, und Sie werden benötigen nur einen Bezeichner pro Namespace. In diesem Fall funktioniert diese Konvention. Aber als ein idiomatisches Muster wird es in anderen Sprachen viel mehr verwendet.
Es ist nur ein Variablenname. – cup
Hinweis: C11 7.1.3 Reservierte Bezeichner: "... Alle Bezeichner, die mit einem Unterstrich beginnen, sind immer für die Verwendung als Bezeichner mit dem Dateibereich sowohl im normalen als auch im Namensraum reserviert." Here '_' ist ein Feldname, so scheint dies nicht zu verletzen. – chux
@chux Namespaces sind in 6.2.3 definiert – OrangeDog