gcc 4.7.2 c89
안녕하세요,포인터/정수 형식이 일치하지
나는 다음과 같은 경고 점점 오전 :
pointer/integer type mismatch in conditional expression
나는 다음과 같은 CFLAGS -Wall -Wextra
fprintf(stderr, "'Failed to open file' Error [ %s ]\n",
(errno == 0) ? "None" : strerror(errno));
프로그램 컴파일 오전 괜찮 았어,하지만 그 경고가 전부라는 걸 알 수가 없어. "없음"과 strerror (errno)는 정수 값이 아닌 문자열을 반환합니다. 그리고 errno 숫자를 0으로 비교합니다. 어떤 제안에 대한
많은 감사합니다, 당신은 <string.h>
헤더를 포함 여부
아니요. 나는 그것을 포함 시켰으며 경고가 사라졌다. 이것은 string.h가 strerror 함수를 포함하기 때문입니다. 그러나, 그게 사실이고 나는 맨 페이지에서 그것을 보았다. 그래서 나에게 컴파일 에러를 주면 안된다. 감사. – ant2009
C 언어는 오래전에 선언없이 함수를 사용할 수있게했습니다. 그런 다음 함수가'int'를 리턴했다고 가정합니다. 이 동작은 현재 비표준이 되었기 때문에 (결과적으로 발생하는 결과로 인해) 많은 컴파일러는 이전 코드와의 호환성을 위해 여전히이를 수용합니다. 나는 당신이'-Wall -Wextra'를 사용하여 (조건 적 표현뿐만 아니라 함수 사용을위한) 경고를 얻지 못해 놀랐습니다. –