thể trùng lặp:
Problem compiling K&R examplePointer cảnh báo loại không phù hợp trong ví dụ từ K & R C
Gần đây tôi đã làm việc cách của mình thông qua ngôn ngữ lập trình C của K & R.
Trong phần 5.11, chúng bao gồm các con trỏ đến các hàm và sau khi nhập vào ví dụ của chúng - một triển khai thực hiện nhanh nơi chúng ta cung cấp một con trỏ tới compari chức năng con trai chúng tôi muốn sử dụng - Tôi nhận được một cảnh báo từ trình biên dịch: loại con trỏ không khớp trong biểu thức điều kiện. (Trình biên dịch của tôi là 4.0.1 gcc trên OS X 10.5.6)
Dòng từ ví dụ kích hoạt cảnh báo là: chương trình
qsort((void **) lineptr, 0, nlines-1,
(int (*)(void*, void*))(numeric ? numcmp : strcmp));
Các thực thi mà không segfaulting, nhưng tôi muốn Smoosh mỗi cảnh báo Tôi có thể, hoặc ít nhất là hiểu nguyên nhân của họ.
Việc kê khai chức năng cho numcmp trông giống như:
int numcmp(char *, char *);
Nhưng theo manpage, stcmp có chữ ký này:
int strcmp(const char *s1, const char *s2);
là cảnh báo đơn giản vì chữ ký phương pháp hơi khác nhau? Hậu quả của việc bỏ qua cảnh báo là gì?
Eddie chỉ về một bản dupe. Tôi đã bỏ phiếu để đóng câu hỏi của riêng mình nhưng tôi nghĩ rằng sẽ có một cách mà chủ sở hữu có thể đóng nó lại. – Dana
Dana, hãy xem [Vấn đề biên soạn ví dụ K & R] (http://stackoverflow.com/questions/616906/problem-compiling-kr-example/616929) và có thể bạn sẽ tìm thấy câu trả lời cho câu hỏi của mình ở đó. Hãy cho chúng tôi biết nếu bạn không biết. – Eddie