Hay otro macro especial _noop( ), destinado a usos como el siguiente (originario de "gettext"):
Sirve para marcar una cadena que el programa extractor de cadenas de los ficheros fuente, si ha de extraer, pero el código compilado no ha de traducir directamente.
Ejemplo: No se puede traducir con _( ) las cadenas constantes establecidas en tiempo de compilación:
Ejemplo:
Incorrecto:
char a[]=_ ("una cadena"); //error de compilación
printf("%s\n",a);
}
(dará error de compilación porque _( ) se define como la función MsgcatMc, si se ha optado por #define MSGCAT_GID, en cambio la macro _noop( ) no hace nada)
Correcto:
char a[]=_noop("una cadena");
printf("%s\n",_(a));
Nótese que _(a) no añadirá a la base de datos a traducir la palabra "a" (lo cual sería incorrecto), porque no está encerrada entre comillas.
No debe usarse este macro _noop( ) para marcar las cadenas que explícitamente no se quieren traducir (#include "Trad.h", etc.), para ello, si se desea habría que definir otra nueva macro, como por ejemplo _no( ).
Go to the first, previous, next, last section, table of contents.