warning: ISO C99 requires rest arguments to be used
글쓴이: facejs / 작성시간: 수, 2010/08/25 - 6:28오후
#define debug_printf(fmt, args...) printf(fmt, ##args);
이와같이 define 하고,
debug_printf("ABCDEFG! \r\n");
이와같이 아규먼트 없이 스트링만 출력했을때..
warning: ISO C99 requires rest arguments to be used
이런 경고메시지가 출력되는데요, -Wno-variadic-macros 옵션을 사용해도 이 경고를 없앨 수가 없네요..
도움 부탁드립니다 ㅡㅜ
Forums:
#define debug_printf(...)
이걸 찾으신 건가요?
C99문법이라 일부 컴파일러에서 밖에 동작하지 않을 수도 있습니다.
gcc로 해보니 따로 c99 옵션 주지 않아도 동작하더라구요
Makefile의 옵션..
답변감사합니다.
현재 Makefile에는 -pednatic 옵션이 들어가 있는데요,
// 주석을 허용하기 위해 -std=gnu99를 추가했습니다.
제가 해보니 #define debug_printf(...)가 std=c99 에서는 warning을 출력하지 않는데요..
-std를 gnu99로 하지않고 c99로 했을 때 다른 점이나 문제점은 없을까요?
gnu99는 c99 + gcc
gnu99는 c99 + gcc extentions 문법인지라 아마 gcc 전용 문법을 쓰면 문제가 있을 것 같습니다.
http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/C-Extensions.html#C-Extensions
댓글 달기