warning: implicit declaration of function '함수'
1.발생 이유: 함수선언을 다른 곳, 현재 코드보다 아래에 해두고 가져다 쓸 때
2.해결방법 : 사용하는 위치 보다 아래에 정의된 함수를 가져다 쓸 때는 해당 파일 또는 include 하는 헤더파일에다가 함수 원형을 선언해두자. 다른 파일에 있다면 extern 하여 사용 하자.
3.여담: 워닝인 이유는 컴파일러가 알아서 찾아주기때문. 컴파일러가 구리면 error로 띄워주는듯 하다.
warning: nested extern declaration of '함수명'
1.발생이유: 이제껏 상위 implicit declaration of function 의 여파로 생겨 났던 것 밖에 없다.
2.해결방법 : 위의 워닝을 해결하라
3.여담: 찾아도 잘안나오네 ㅠㅠ
warning: label 'defualt' defined but not used
1.발생 이유: 스위치 문에서 default를 defualt로 적어서 나는 워닝
2.해결방법 : 오타를 수정하자 무지막지하게 부끄러운 일이다..(*-_-*)
3.여담: 이걸 상사에게 물어봤다가 얼굴이 빨개졌다. 부끄러워서...
warning: return makes integer from pointer without a cast
1.발생 이유: 리턴 값이 int인 함수내에서 다른 자료형으로 리턴을 했을 때
2.해결방법 : 꼭 리턴해야 하는 의미있는 값일경우(unsigned 라던지) return (int)변수명;
return NULL; <- 이런걸 적어놨다면 그냥 -1로 리턴하고 해당 함수 콜 하는 부분 다음에
if(ret < 0) 를 사용하여 예외처리를 하자(ret는 보통 return 의 줄임말. return 예약어니까 변수명으로 쓸수 없다)
3.여담: 막코딩하다보니 return NULL; 해놓고 바로아래 int형으로 리턴을 적어뒀더라....
warning: pointer targets in passing argument 2 of 'sprintf' differ in signedness
1.발생 이유: sprintf라는 함수를 사용하는 데 안에 들어가는 아규먼트(파라미터?)가 부호값을 상실했네
sprintf(char * a, const char *b , ....) 뭐 이런식인데 sprintf(char * a,const u_int8_t *b , ....)
이렇게 넣은거
2.해결방법 : 변수를 바로 쑤셔박지말고 sprintf(받는놈 , " % 자료형형형", *b) 요런식으로 바끄야할듯
warning: type defaults to 'int' in declaration of '함수명'
1.발생 이유: 필자는 extern 함수 여기서 에러가 났엇다. 함수 원형은 int형인데 왜 int 안적냐는 워닝
2.해결방법: 컴파일러가 모르게 extern int 함수 이렇게 바꾸고 모르는척 컴파일다시하자
warning: case label value exceeds maximum value for type
1.발생 이유: switch 비교문에서 case 가 음수로 가는 경우
2.해결방법: 음수 비교를 하지 말거나, 나는 음수를 안쓴다 싶으면 unsigned를 넣든지
계속 추가할 계획이다. 시간남을때..
return NULL; <- 이런걸 적어놨다면 그냥 -1로 리턴하고 해당 함수 콜 하는 부분 다음에
if(ret < 0) 를 사용하여 예외처리를 하자(ret는 보통 return 의 줄임말. return 예약어니까 변수명으로 쓸수 없다)
3.여담: 막코딩하다보니 return NULL; 해놓고 바로아래 int형으로 리턴을 적어뒀더라....
warning: pointer targets in passing argument 2 of 'sprintf' differ in signedness
1.발생 이유: sprintf라는 함수를 사용하는 데 안에 들어가는 아규먼트(파라미터?)가 부호값을 상실했네
sprintf(char * a, const char *b , ....) 뭐 이런식인데 sprintf(char * a,const u_int8_t *b , ....)
이렇게 넣은거
2.해결방법 : 변수를 바로 쑤셔박지말고 sprintf(받는놈 , " % 자료형형형", *b) 요런식으로 바끄야할듯
warning: type defaults to 'int' in declaration of '함수명'
1.발생 이유: 필자는 extern 함수 여기서 에러가 났엇다. 함수 원형은 int형인데 왜 int 안적냐는 워닝
2.해결방법: 컴파일러가 모르게 extern int 함수 이렇게 바꾸고 모르는척 컴파일다시하자
warning: case label value exceeds maximum value for type
1.발생 이유: switch 비교문에서 case 가 음수로 가는 경우
2.해결방법: 음수 비교를 하지 말거나, 나는 음수를 안쓴다 싶으면 unsigned를 넣든지
계속 추가할 계획이다. 시간남을때..