"C" bilgimi tazeleme sürecindeyim. I işaretçileri ve bu nasıl çalıştığını o diziler çürüme olsun. Dize işlemede bu gibi görünen kodlara devam ediyorum;İndeksle öğelere erişme üzerinde char işaretçisini artırırken herhangi bir performans artışı var mı?
int count_spaces(const char *s)
{
int count = 0;
for(; *s != '\0'; s++){
if(*s == ' '){
count++;
}
}
return count;
}
Bu işlevin yazılması yerine dizge işlem kodumdan hangi performans kazanımdan çıkarım?
int count_spaces(const char s[])
{
int count = 0, i;
for(i = 0; s[i] != '\0'; i++)
{
if(s[i] == ' '){
count++;
}
}
return count;
}
İşaretçiyi ne zaman kullanacağınız ve ne zaman kullanmamanız gerektiği için kolay bir sözlüğü var mı?
Kodunuzdan bu tür bir performansı sıkıştırmak için derleyiciye bırakın. Asm sürümünü kontrol etmeyi denediniz mi? –
@ultrasounder’da küçük bir sözdizimi hatası var. İkinci kod örneğinde \ 0'dan sonra ekstra bir teklife ihtiyacınız var. – RunFun
artı önemli basamaklama eksik! –