Para la depuración Tengo muchas llamadas a una función de registro de depuración en mi aplicación. Por supuesto, en la versión de producción, estas llamadas de depuración deben omitirse. En lugar de escribir:Directiva de depuración y preprocesador
#if DEVEL == 1
Log::debug(...);
#endif
alrededor de todas las llamadas a la función de depuración decidí que el escribir la siguiente en la función de depuración en sí:
#if DEVEL != 1
return;
#endif
¿La sobrecarga de la llamada a la función inútil ser evitado por el compilador ¿o estoy mejor usando una construcción (muchos fea) #if #endif
por razones de rendimiento?
Agradable. Sin embargo, ¿por qué la versión #else no toma parámetros? –
@Kerrek, porque solo hay 2 condiciones. Si no es 'DEVEL == 1', seguramente será' DEVEL! = 1'. – iammilind
Lo siento, lo que quise decir es ¿por qué la primera versión de LOG_DEBUG tiene argumentos (paréntesis), pero la segunda no? Si escribe 'LOG_DEBUG (" hello ")', entonces la segunda macro se expandiría a '" hello "', no nada, ¿no? –