Я чувствую, что все хорошо и хорошо изучили технические правила C ++: ответ - да. Давайте отбросим традицию и тот факт, что эта 1 конкретная функция является особенной и знаковой, которая содержит действительные моменты, которые нельзя изменять на этой основе.
Часто мне кажется, что философия выбора редко обсуждается, и поэтому я хотел бы предложить точку зрения на этот вопрос, поскольку я считаю, что это важно для причины, по которой это было задано для начала.
Этот вопрос для меня связан с выбором выражения английского языка в коде в целом. Кажется, вас беспокоят краткие описания, в частности, если короткая рука содержит похожий текст. Однако в вашем примере изменение argn на n_of_args выполняет изменение только одного типа сокращенной записи в другую форму сокращения без добавления реального значения: пояснения или других видимых свойств.
Слово «число» заменено буквой «н».
Если вы меняете сокращенное имя с помощью философии борьбы с короткой рукой, то что-то вроде этого может показаться более подходящим:
main (int аргументCount, char ** аргументVector)
Я всегда думаю о двух вещах: называть вещи тем, чем они являются, и / или их подразумеваемым использованием. Называть его аргументомVector для меня излишне, поскольку свойство быть вектором подразумевается двойным косвенным обращением **. Таким образом, лучший вариант написания кода: ** аргументы.
Некоторые скажут, что переменная с именем argumentsCount объявлена как int, а Count не может быть отрицательным, но вы можете иметь отрицательное int {unsigned is better}.
Опять же, что это и как используется, играет важную роль в этой интерпретации. Если это счетчик, то я предполагаю, что он никогда не будет отрицательным. В конце концов, как можно получить графу -2 яблока. Я бы сказал, ты ВЛАДЕЛА двумя яблоками. Если это число, то я ожидаю, что возможен отрицательный случай. Вот почему дополнительное слово «of», вероятно, важно для вас. Это и, возможно, число, на которое ссылается коллекция, подразумевает конкретный элемент, а не свойство самой коллекции. То есть: argumentsNumber = 5 подразумевает конкретный аргумент, но не numberOfArguments.
main (int maxArgumentsIndex, char ** аргументы).
Это устраняет двусмысленность. Назвав его индексом, вы удалите отрицательную двусмысленность в регистре, а также опишете, что это такое, и, кроме того, как его использовать. Английская формулировка также подразумевает, что max является абсолютным и может показаться странным при написании кода, изменяющего это значение (оно должно быть const). Слово «аргументы» имеет здесь смысл, поскольку оно существует во множественном числе, описывает, что это такое и как его уже следует использовать. Даже интерпретация этого способа может быть опасной, поскольку индекс равен -1 от Count / NumberOf. 5 аргументов дают maxIndex 4 !!
Любая другая функция, и я бы полностью использовал:
функция void (const unsigned int maxArgumentsIndex, const char ** аргументы)
Не все ситуации заслуживают подробных описаний. На самом деле, иногда короткая стрелка дает больше читабельности, в частности, в случае написания математических классов, таких как Vec3f, Matrix, Quaternion и т. Д. Я почти всегда буду пытаться сопоставить математический язык, а не лингвистический. . float x, y, z vrs. float xComponent и тому подобное.
Я понимаю, что все это - выбор стиля, но осознание выбора действительно поможет в долгосрочной перспективе. Я гарантирую, что опытные программисты будут беспокоиться, когда массивы не записываются во множественном числе, но опять же, main - это особая проза существования;)