Herkesin teknik c ++ kurallarını iyi ve iyi ele aldığını hissediyorum: Cevap evet. Geleneği ve bu 1 belirli işlevin bu temelde değişmemesi gereken geçerli noktaları içeren özel ve ikonik olduğu gerçeğini bir kenara bırakalım.
Çoğu zaman, seçimlerin felsefesinin nadiren tartışıldığını hissediyorum ve bu nedenle, bunun neden sorulmasının nedeninin önemli olduğunu düşündüğüm için bu konuya bir bakış açısı sunmak istedim.
Bana göre bu soru, genel olarak ingilizceyi kod olarak ifade etme seçeneğini içeriyor. Kısa el açıklamaları, özellikle de kısa el benzer görünümlü bir metne sahipse, rahatsız hissediyorsunuz. Bununla birlikte, örneğinizde, argn'yi n_of_args olarak değiştirmek, yalnızca bir tür kısa elin gerçek bir değer eklemesi olmadan başka bir kısaltma biçimine dönüştürülmesini sağlar: açıklama veya diğer görünür özellikler.
'Sayı' kelimesinin yerini 'n' harfi almıştır.
Kısa bir elin adını anti kısa el felsefesiyle değiştiriyorsanız, bunun gibi bir şey daha uygun görünebilir:
main (int argumentCount, char ** argumentVector)
Her zaman iki şeyi düşünürüm: Bir şeyleri ne olduklarına ve / veya ima edilen kullanımlarına göre adlandırmak. Buna argumentVector demek benim için gereksizdir, çünkü bir vektör olma özelliği çift dolaylı ** ile ima edilir. Bu nedenle, kodu nasıl yazacağım konusunda daha iyi bir uzun el: ** argümanlar.
Bazıları argumentCount adlı değişkenin bir int olarak bildirildiğini ve bir Count'un negatif olamayacağını söyler, ancak negatif bir int {unsigned is better} olabilir.
Yine bu yorumda ne olduğu ve nasıl kullanıldığı devreye giriyor. Bir Sayı ise, o zaman asla negatif olmayacağını varsayarım. Sonuçta, nasıl -2 elmaya sahip olabilirsiniz? Size iki elmanın SAHİBİ olduğunu söyleyebilirim. Bir Sayı ise, olumsuz bir durumun mümkün olmasını beklerim. Bu nedenle, 'of' ek kelimesi sizin için büyük olasılıkla önemlidir. Bu ve belki de bir koleksiyon tarafından atıfta bulunulan bir sayı, koleksiyonun kendisinin bir özelliğinden ziyade belirli bir öğeyi ifade eder. Yani: argumentsNumber = 5, belirli bir bağımsız değişken anlamına gelir, ancak numberOfArguments değil.
main (int maxArgumentsIndex, char ** bağımsız değişkenler).
Bu belirsizliği ortadan kaldırır. Buna dizin demek, olumsuz durum belirsizliğini ortadan kaldırır ve ayrıca ne olduğunu ve ek olarak nasıl kullanılacağını açıklar. Ayrıca, ingilizce ifadesiyle, bir maksimum değerinin mutlak olduğunu ve bu değeri değiştiren kod yazarken tuhaf hissettireceğini ima eder (const olmalıdır). 'argümanlar' burada anlamlıdır, çünkü çoğuldur, ne olduğunu ve nasıl kullanılması gerektiğini açıklar. Bu şekilde yorumlamak bile tehlikeli olabilir çünkü bir İndeks bir Count / NumberOf'un -1'i. 5 argüman maxIndex 4 değerini verir !!
Başka herhangi bir işlev ve tamamen kullanacağım:
void işlevi (const unsigned int maxArgumentsIndex, const char ** argümanlar)
Tüm durumlar uzun el tanımlayıcıları hak etmez. Aslında, bazen kısa bir el daha fazla okunabilirlik sağlar, özellikle Vec3f, Matrix, Quaternion, vb. Gibi matematik dersleri yazarken ... Neredeyse her zaman dilbilimsel dil yerine matematik dilini eşleştirmeye çalışacağım . float x, y, z vrs. float xComponent ve benzerleri.
Tüm bunların bir stil seçimi olduğunu anlıyorum, ancak seçimlerin bilincinde olmak uzun vadede gerçekten yardımcı olacaktır. Diziler çoğul biçimde yazılmadığında tecrübeli programcıların canını sıkacağını garanti ederim, ama yine de ana varoluşun özel bir düzyazıdır;)