6 Temmuz 2012, Cuma
Strlen eğer bir döngü koşulu yerine kullanılan ve birden çok kez hesaplanır?
Eğer aşağıdaki kodu gereksiz hesaplamalar neden olabilir emin değilim, ya da derleyici özgü?
for (int i = 0; i < strlen(ss); i)
{
// blabla
}
strlen()
i
arttığında her zaman hesaplanacak?
CEVAP
6 Temmuz 2012, Cuma
Evet, strlen()
her yineleme değerlendirilecektir. İdeal koşullar altında, doktoru değeri değişmeyecek anlamak mümkün olabilir, ama ben şahsen buna güvenmek olmaz.
Gibi bir ÅŸey yapmak istiyorum
for (int i = 0, n = strlen(ss); i < n; i)
ya da muhtemelen
for (int i = 0; ss[i]; i)
dize yineleme sırasında uzunluğu değiştirmeyecek sürece. Eğer, strlen()
her zaman Ara, ya da daha karmaşık mantık yoluyla başa gerekir.
Bunu PaylaÅŸ:
Pythonic döngü İÇİN birleştirmek ve EĞ...
HTML: Tab boÅŸluk yerine birden fazla b...
DÜZENLİ tek bir boşluk ile birden çok ...
Neden gcc eğer hız yerine BOYUTU için ...
Eğer birden çok dize başka bir dize va...