Wydaje mi się, że wszyscy dobrze i dobrze omówili techniczne zasady C ++: Odpowiedź brzmi: tak. Odłóżmy na bok tradycję i fakt, że ta 1 szczególna funkcja jest specjalna i ikoniczna, która zawiera ważne punkty, których nie można zmieniać na tej podstawie.
Często wydaje mi się, że filozofia wyborów jest rzadko omawiana i dlatego chciałem przedstawić perspektywę w tej sprawie, ponieważ uważam, że jest to ważne dla powodu, dla którego o to poproszono.
To pytanie dotyczy ogólnego wyboru wyrażania języka angielskiego w kodzie. Wydaje się, że przeszkadzają ci krótkie opisy rąk, w szczególności, jeśli krótkie rozdanie kończy się podobnie wyglądającym tekstem. Jednak w twoim przykładzie zmiana argn na n_of_args powoduje tylko zmianę jednego typu krótkiej ręki na inną formę skrótu bez rzeczywistego dodawania wartości: wyjaśnienie lub inne widoczne właściwości.
Słowo „liczba” zostało zastąpione literą „n”.
Jeśli zmieniasz nazwę krótkiej ręki za pomocą filozofii anty-krótkiej ręki, coś takiego może wydawać się bardziej odpowiednie:
main (int argumentCount, char ** argumentVector)
Zawsze myślę o dwóch rzeczach: nazywanie rzeczy według tego, czym są i / lub przez ich domniemane użycie. Nazywanie go argumentVector jest dla mnie zbędne, ponieważ właściwość bycia wektorem wynika z podwójnego pośredniego **. Zatem lepsza długa wskazówka dotycząca tego, jak napisałbym kod, to: ** argumenty.
Niektórzy powiedzieliby, że zmienna o nazwie argumentCount jest zadeklarowana jako liczba całkowita, a liczba nie może być ujemna, ale można mieć wartość ujemną int {unsigned is better}.
I znowu, co to jest i jak jest używane, zaczyna grać w tej interpretacji. Jeśli jest to hrabia, zakładam, że nigdy nie będzie ujemny. W końcu, jak możesz mieć liczbę -2 jabłek. Powiedziałbym, że OWE dwa jabłka. Jeśli jest to liczba, spodziewałbym się, że możliwy będzie przypadek ujemny. Dlatego prawdopodobnie dodatkowe słowo „z” jest dla Ciebie ważne. To i być może liczba, do której odwołuje się kolekcja, implikuje konkretny element, a nie właściwość samej kolekcji. To znaczy: argumentsNumber = 5 implikuje określony argument, ale nie numberOfArguments.
main (int maxArgumentsIndex, char ** arguments).
Eliminuje to niejednoznaczność. Nazywanie go indeksem usuwa negatywną niejednoznaczność wielkości liter, a także opisuje, czym jest i dodatkowo jak z niego korzystać. Z angielskiego sformułowania wynika również, że maksymalna wartość jest wartością bezwzględną i pisanie kodu modyfikującego tę wartość byłoby dziwne (powinno to być const). „argumenty” mają tutaj sens, ponieważ jest w liczbie mnogiej, opisuje, czym jest i jak już powinno być używane. Nawet interpretacja w ten sposób może być niebezpieczna, ponieważ indeks jest równy -1 z Count / NumberOf. 5 argumentów daje maxIndex równy 4 !!
Każda inna funkcja i całkowicie użyłbym:
funkcja void (const unsigned int maxArgumentsIndex, const char ** arguments)
Nie wszystkie sytuacje zasługują na deskryptory z długiej ręki. W rzeczywistości czasami krótkie rozdanie daje większą czytelność, w szczególności w przypadku pisania klas matematycznych, takich jak Vec3f, Matrix, Quaternion itp ... Prawie zawsze będę starał się dopasować język matematyczny, a nie językowy . float x, y, z vrs. float xComponent i tym podobne.
Rozumiem, że to wszystko zależy od stylu, ale świadomość tych wyborów naprawdę pomoże na dłuższą metę. Gwarantuję, że doświadczeni programiści będą się niepokoić, gdy tablice nie są pisane w liczbie mnogiej, ale z drugiej strony main to specjalna proza istnienia;)