Suprimir Función de advertencia del compilador declarada nunca referenciada

Así que tengo un código como este:

void foo (int, int);

void bar ( )
{
    //Do Stuff

   #if (IMPORTANT == 1)
       foo (1, 2);
   #endif

}

Cuando hago una compilación sin "IMPORTANTE" obtengo un compilador. Advertencia de que foo está definido y nunca se hace referencia. Lo que me hizo pensar (ese es el problema).

Así que para arreglar esto acabo de agregar el mismo#if (IMPORTANT == 1) alrededor de la definición de la función, etc ... para eliminar la advertencia, y luego comencé a preguntarme si había una forma diferente de suprimir esa advertencia en esa función. Estaba buscando un atributo GCC "no utilizado" y no sabía si las funciones tenían el mismo atributo que podía establecer. ¿Hay alguna otra forma de suprimirlo que suprima esa advertencia solo para esa función y no para el archivo?

Respuestas a la pregunta(8)

Su respuesta a la pregunta