Olası Çoğalt: Ne R.Pointer tür uyumsuzluğu uyarı
K & tarafından C Programlama Dili ile yoluma çalışıyoruz
Problem compiling K&R example Son zamanlarda
Bölüm 5.11'de, işlevlere ve örneklerine yazdıktan sonra işaretçileri kapsamaktadır - compari'ye bir işaretçi sağladığımız bir fastsort uygulaması kullanmak istediğimiz fonksiyon - derleyiciden bir uyarı alıyorum: koşullu ifadede işaretçi türü uyuşmazlığı. uyarıyı tetikleyen örnekten
çizgi edilir (My derleyici OS X 10.5.6 üzerinde gcc 4.0.1):
qsort((void **) lineptr, 0, nlines-1,
(int (*)(void*, void*))(numeric ? numcmp : strcmp));
programı segfaulting olmadan yürütür, ama ben her uyarıyı smoosh ister Onların sebeplerini anlayabilir veya en azından anlayabilirim.
int numcmp(char *, char *);
Ama man sayfasına göre, stcmp bu imzası vardır:
int strcmp(const char *s1, const char *s2);
mi çünkü biraz farklı yöntem imzaların basit uyarı
numcmp için fonksiyon bildirimi benziyor? Uyarıyı ihmal etmenin sonuçları nelerdir?
Eddie bir dupe hakkında işaret etti. Kendi sorumu kapatmaya oy verdim, ancak sahibin onu kapatabileceği bir yol olacağını düşündüm. – Dana
Dana, [Sorun derleme K & R örneği] 'ne bakın (http://stackoverflow.com/questions/616906/problem-compiling-kr-example/616929) ve muhtemelen sorunuzun cevabını burada bulabilirsiniz. Eğer yapmazsan haber ver. – Eddie