Şu anda qsort işlevi hakkında öğreniyorum ve ben karşılaştırmak işlevini karşılaştı: Biz *(int*)a
kullanırken nedenBu ne demek C?
int cmpfunc (const void * a, const void * b)
{
return (*(int*)a - *(int*)b);
}
anlamıyorum. Bu şey nedir ve kullanımı nedir? Neden basit int a
yerine const void *a
?
Bu forumun kapsamı dışında olan dilin temellerini soruyormuşsunuz gibi geliyor. Bu pasajın hiçbir yerinde görmüyorum) Açıklamak istediğiniz bir ve '*' işaretçiyi göstermek için kullanılır s. Lütfen sorunuzu daraltın ve biraz daha hassas bir şekilde sor. - ** DÜZENLEME: ** Oh, anladım, sen * (int *) a 'hakkında soru soruyorsun ama işaretleme sözdizimine aşina değilsin. –
Her ne kadar, çıkarma işlemi taşma yapabilir ve yanlış karşılaştırmayı geri döndürebileceğinden, bu kötü bir yöntemdir. Buna yapıştır: karşılaştırma. –
@ user5910213 O okudu. Asıl sorumunuz sadece (int) a '' dır çünkü '' '' ları işaretleme olarak değerlendirildi ve sorgunuzun işlendiğinde nasıl görüneceğini görmek için önizlemeyi kontrol etmediniz. – Paulpro