Ich habe das Gefühl, dass jeder die technischen C ++ - Regeln gut und gut behandelt hat: Die Antwort lautet ja. Lassen Sie uns die Tradition und die Tatsache beiseite legen, dass diese eine bestimmte Funktion speziell und ikonisch ist und gültige Punkte enthält, die sich auf dieser Grundlage nicht ändern dürfen.
Oft habe ich das Gefühl, dass die Philosophie der Entscheidungen selten diskutiert wird, und wollte daher eine Perspektive auf diese Angelegenheit bieten, da ich es für wichtig halte, warum dies von Anfang an verlangt wurde.
Diese Frage beinhaltet für mich die Wahl, Englisch im Code im Allgemeinen auszudrücken. Sie scheinen von Kurzhandbeschreibungen gestört zu sein, insbesondere wenn die Kurzhand einen ähnlich aussehenden Text enthält. In Ihrem Beispiel bewirkt das Ändern von argn in n_of_args jedoch nur das Ändern eines Typs einer kurzen Hand in eine andere Form der Kurzschrift ohne wirklichen Mehrwert: Klarstellung oder andere sichtbare Eigenschaften.
Das Wort 'Nummer' wurde durch einen Buchstaben 'n' ersetzt.
Wenn Sie einen Kurzhandnamen über die Philosophie der Anti-Kurzhand ändern, erscheint so etwas möglicherweise angemessener:
main (int argumentCount, char ** argumentVector)
Ich denke immer an zwei Dinge: Dinge nach dem zu benennen, was sie sind und / oder nach ihrer impliziten Verwendung. Es als argumentVector zu bezeichnen, ist für mich überflüssig, da die Eigenschaft, ein Vektor zu sein, durch die doppelte Indirektion ** impliziert wird. Eine bessere lange Hand für das Schreiben von Code ist daher: ** Argumente.
Einige würden sagen, dass die Variable argumentCount als int deklariert ist und ein Count nicht negativ sein kann, aber Sie können ein negatives int haben {unsigned is better}.
Auch hier spielt es eine Rolle, was es ist und wie es verwendet wird. Wenn es eine Zählung ist, würde ich annehmen, dass es niemals negativ sein würde. Wie kann man denn eine Anzahl von -2 Äpfeln haben? Ich würde sagen, Sie schulden zwei Äpfel. Wenn es eine Zahl ist, würde ich erwarten, dass ein negativer Fall möglich ist. Aus diesem Grund ist Ihnen das zusätzliche Wort "von" wahrscheinlich wichtig. Dies und möglicherweise eine Nummer, auf die sich eine Sammlung bezieht, impliziert eher einen bestimmten Gegenstand als eine Eigenschaft der Sammlung selbst. Dh: rulesNumber = 5 impliziert ein bestimmtes Argument, jedoch nicht numberOfArguments.
main (int maxArgumentsIndex, char ** Argumente).
Dies beseitigt Mehrdeutigkeiten. Wenn Sie es als Index bezeichnen, werden negative Mehrdeutigkeiten in Groß- und Kleinschreibung beseitigt und es wird beschrieben, was es ist und wie es zusätzlich verwendet wird. Der englische Wortlaut impliziert auch, dass ein Maximum ein Absolutwert ist und sich seltsam anfühlt, wenn man Code schreibt, der diesen Wert ändert (es sollte const sein). 'Argumente' sind hier sinnvoll, da es Plural ist, beschreibt, was es ist und wie es bereits verwendet werden sollte. Selbst eine solche Interpretation kann gefährlich sein, da ein Index -1 von Count / NumberOf ist. 5 Argumente ergeben einen maxIndex von 4 !!
Jede andere Funktion und ich würde komplett nutzen:
void-Funktion (const unsigned int maxArgumentsIndex, const char ** Argumente)
Nicht alle Situationen verdienen lange Handbeschreibungen. In der Tat bietet eine kurze Hand manchmal eine bessere Lesbarkeit, insbesondere beim Schreiben von Mathematikklassen wie Vec3f, Matrix, Quaternion usw. Ich werde fast immer versuchen, eher die mathematische als die sprachliche Sprache zu finden . float x, y, z vrs. float xComponent und dergleichen.
Ich verstehe, dass all dies eine Stilwahl ist, aber sich der Wahl bewusst zu sein, wird auf lange Sicht wirklich helfen. Ich garantiere, dass erfahrene Programmierer sich Sorgen machen, wenn Arrays nicht im Plural geschrieben werden, aber andererseits ist main eine spezielle Prosa der Existenz;)