Feragatname : Önek ve sonek artışının anlamını çok iyi biliyorum. Lütfen bana nasıl çalıştıklarını açıklama.
Yığın taşması ile ilgili soruları okurken yardım edemem ama programcıların postfix artrım operatörü tarafından tekrar tekrar karıştığını fark ettim. Bundan şu soru ortaya çıkar: Postfix artışının kod kalitesi açısından gerçek bir fayda sağladığı herhangi bir kullanım durumu var mı?
Sorumu bir örnekle açıklığa kavuşturmama izin verin. İşte süper özlü bir uygulama strcpy:
while (*dst++ = *src++);
Ancak bu, kitabımdaki en çok kendi kendini belgeleyen kod değil (ve aklı başında derleyiciler için iki sinir bozucu uyarı da veriyor). Öyleyse aşağıdaki alternatifte yanlış olan ne?
while (*dst = *src)
{
++src;
++dst;
}
Böylece durumdaki kafa karıştırıcı atamadan kurtulabilir ve tamamen uyarı gerektirmeyen bir kod alabiliriz:
while (*src != '\0')
{
*dst = *src;
++src;
++dst;
}
*dst = '\0';
(Evet, biliyorum srcve dstbu alternatif çözümlerde farklı son değerlere sahip olacağım, ancak strcpydöngüden hemen sonra geri döndüğü için, bu durumda önemli değil.)
Postfix artışının amacı, kodu olabildiğince kısa ve öz yapmaktır. Bunun nasıl bir çaba sarf etmemiz gerektiğini göremiyorum. Bu başlangıçta performansla ilgiliyse, bugün hala geçerli mi?
int c = 0; c++;
strcpymetodu bu şekilde kodlayacağından şüpheleniyorum (daha önce bahsettiğiniz sebeplerden dolayı).