Go to the first, previous, next, last section, table of contents.


Macro especial _noop( )

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.