considerar los siguientes dos macros:"ISO C99 requiere argumentos de descanso para ser utilizado"
#define PNORM(v, s, ...) { \
if(VERBOSITY_CHECK(v)) { \
if((errno = pthread_mutex_lock(&server.output_mutex))) { \
PERROR_LOCKFREE(normal, "\tpthread_mutex_lock failed on output_mutex.\r\n") ; \
} \
fprintf(stdout, s, ## __VA_ARGS__) ; \
fflush(stdout) ; \
if((errno = pthread_mutex_unlock(&server.output_mutex))) { \
PERROR_LOCKFREE(normal, "\tpthread_mutex_unlock failed on output_mutex.\r\n") ; \
} \
} \
}
#define PERROR_LOCKFREE(v, s, ...) { \
if(VERBOSITY_CHECK(v)) { \
PERRNO ;\
fprintf(stderr, s, ## __VA_ARGS__) ; \
fflush(stderr) ; \
} \
}
Consideremos ahora un ejemplo de uso de éstos:
PNORM(verbose, "\tSomeText [%d] More [%p]\r\n", 0, ptr) ;
cuando se compila con la opción -pedantic y -std = c99 consigo este error muchas veces:
mycode.c:410:112: warning: ISO C99 requires rest arguments to be used
El compilador está justo en quejarse de esto, pero no es a si De la misma manera que puedo suprimir esta advertencia ya que no me importa?
pedante es una característica muy buena de usar para ayudar a detectar errores menores en el código. Las advertencias no son algo para ignorar. –
@ David: Claro, pero la pregunta era "¿cómo puedo ignorar esta advertencia." '-pedantic' realmente solo es útil para atrapar dependencias de gcc. '-Wall' atrapará a casi todos los errores detectados por las advertencias. – nmichaels
Esta respuesta realmente no ayuda a desactivar la advertencia de que solo. Además, al menos mi versión de gcc NO es compatible con 'pragma Warnings'. –