Я відчуваю, що всі добре витримали технічні правила c ++: відповідь так. Давайте відкинемо традицію та той факт, що ця 1 особлива функція є особливою та знаковою, яка містить дійсні пункти, які не можна змінювати на цій основі.
Часто я відчуваю, що філософія вибору рідко обговорюється, і, отже, я хотів би запропонувати погляд на це питання, оскільки я вважаю, що це важливо для того, чому це було запропоновано для початку.
Це запитання для мене передбачає вибір у вираженні англійської мови в коді загалом. Здається, вас турбують короткі описи рук, зокрема, якщо коротка рука подає подібний на вигляд текст. Однак у вашому прикладі зміна argn на n_of_args виконує лише зміну одного типу короткої руки на іншу форму скорочення без реального додавання вартості: уточнення чи інших видимих властивостей.
Слово "номер" замінено літерою "n".
Якщо ви змінюєте ім'я короткої руки за допомогою філософії антикороткої руки, то щось подібне може здатися більш доречним:
main (int argumentCount, char ** argumentVector)
Я завжди думаю про дві речі: називати речі тим, що вони є, та / або їх прихованим використанням. Називати це argumentVector для мене зайвим, оскільки властивість бути вектором передбачається подвійною опосередкованістю **. Таким чином, краща довга рука для того, як я писав би код: ** аргументи.
Дехто сказав би, що змінна з іменем argumentCount оголошена як int, і Count не може бути від'ємним, але ви можете мати від'ємний int {unsigned is better}.
Знову ж таки, що це і як воно використовується, відіграє важливу роль у цій інтерпретації. Якщо це граф, то я б припустив, що це ніколи не буде негативним. Врешті-решт, як ви можете мати кількість -2 яблука. Я б сказав, ви в боргу два яблука. Якщо це число, то я би очікував, що можливий негативний випадок. Ось чому додаткове слово "з", ймовірно, важливо для вас. Це, і, можливо, число, яке називається колекцією, означає певний предмет, а не властивість самої колекції. Тобто: argumentNumber = 5 передбачає конкретний аргумент, але не numberOfArguments.
main (int maxArgumentsIndex, char ** аргументи).
Це усуває двозначність. Називання його індексом усуває негативну двозначність, а також описує, що це таке, і додатково, як ним користуватися. З англійських формулювань це також передбачає, що max - це абсолют, і це буде дивно писати код, який змінює це значення (воно повинно бути const). Тут аргумент має сенс, оскільки він є множинним, описує, що це таке, і як його вже слід використовувати. Навіть таке тлумачення може бути небезпечним, оскільки індекс становить -1 від Count / NumberOf. 5 аргументів дають максимум 4!
Будь-яка інша функція, і я б повністю використав:
функція void (const unsigned int maxArgumentsIndex, const char ** аргументи)
Не всі ситуації заслуговують довгих дескрипторів рук. Насправді, іноді коротка рука дає більшу читабельність, зокрема, у випадку написання математичних класів, таких як Vec3f, Matrix, Quaternion тощо ... Я майже завжди намагатимусь відповідати математичній мові, а не мовній. . float x, y, z vrs. float xComponent тощо.
Я розумію, що все це вибір стилю, але усвідомлення вибору дійсно допоможе в довгостроковій перспективі. Я гарантую, що досвідчених програмістів турбує, коли масиви не пишуться у множині, але знову ж таки, головне - це спеціальна проза існування;)