ANSI C 문법에 맞지 않는다는 워닝 메시지 안 보려면?
글쓴이: poplinux / 작성시간: 월, 2007/08/13 - 10:03오전
다음과 같이 헤더를 작성했습니다.
#define DEBUG0(args...) fprintf(args)
그리고 -Wall 옵션을 주어서 소스를 컴파일하면 다음과 같은 워닝이 출력됩니다.
warning: ANSI C does not allow macro with variable arguments
아무래도 매크로에 가변인수 사용하는 것은 ansi c에서는 지원하지 않는데 gcc 에서만 지원하는 기능인 것 같습니다.
위와 같은 워닝을 보지 않으려면 ansi c 가 아니라 gcc 표준으로 컴파일한다는 것을 알려 줘야 할 것 같은데 어떻게 지정할 수 있을까요?
Forums:
원하는 해결방법은
원하는 해결방법은 아닐꺼 같지만
#define DEBUG0(args) printf args
하시고 사용할때 다음과 값이 가로를 추가하세요
DEBUG0(("%d %d %d\n", a, b, c));
man gcc 하셔서 -std=
man gcc 하셔서 -std= 관련 항목을 찾아보세요.
C라면 gnu99, C++이라면 gnu++98 정도 쓰시면 될 것 같군요.
근데 gcc 4.1.2에서는 -std=c99 -Wall 옵션 줘도 경고가 안 뜨네요. 확실히 저건 gcc 확장인데...
감사합니다. 제가
감사합니다.
제가 쓰고 있는 컴파일러가 2.95 계열이어서 그런지 -std=c99 옵션이 먹지 않는군요.
========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux
임베디드 리눅스 관련 프리렌서 지향
댓글 달기