Disponible la nueva versión "donationware" 7.3 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Curso C++

[Home]  [Inicio]  [Índice]


4.1.3a  Tipos y variables globales

§1  Sinopsis

Los compiladores utilizan una serie de variables y tipos globales de nombres predefinidos que (utilizando las cabeceras adecuadas), pueden ser incluidos en cualquier programa C++ para usos varios, como cálculos de fechas, horas, etc.

§2  Variables y tipos globales más frecuentes

En concreto, Borland C++ utiliza las siguientes [1]:


Etiqueta    Descripción                          
_8087 Sintaxisextern int _8087;

Esta variable adopta un valor distinto de cero si la lógica de autodetección del módulo inicial ( 1.5) detecta la existencia de un coprocesador de coma flotante.
_argc Sintaxisextern int _argc;

Esta variable adopta el valor pasado al argumento argc de la función main ( 4.4.4).
_argv Sintaxisextern char **_argv;
                extern wchar_t ** _wargv;

Esta variable adopta el valor pasado al argumento argv de la función main (ver el punto anterior ).  _wargv es la versión Unicode.
_ctype Sintaxisextern char _ctype[];

Esta variable es una matriz que incluye información sobre atributos de los caracteres.  Cada elemento de la matriz es un conjunto de bits describiendo determinadas características del carácter.  La matriz es utilizada por determinadas funciones de la Librería Estándar, como isdigit(), isprint(), isalpha(), etc.
_daylight Sintaxisextern int _daylight;

Este valor es utilizado por las funciones de la RTL relacionadas con la fecha y la hora, por ejemplo mktime y localtime.  Se trata de un entero que informa a dichas funciones cuando deben tener en cuenta los adelantos y retrasos correspondientes a los horarios de verano e invierno.

Esta variable es inicializada a partir de los valores contenidos en la variable TZ ( 1.7.1); adopta un valor distinto de cero si el valor DST está especificado en TZ y 0 en caso contrario. Si TZ no existe o tiene un formato incorrecto, su valor se obtiene del SO.  Ejemplo:

cout << _dylight;  // ->  1

Comentario:  El sistema está en horario de verano, con una hora de adelanto sobre la que correspondería por su uso horario.

_doserrno
_environ
errno Esta variable es utilizada para almacenar mensajes de error cuando fallan ciertas rutinas de Librería. Cuando ocurre un error esta variable adopta un valor que identifica el tipo de error ocurrido.  En ocasiones errno y _doserrno son equivalentes.  Otras veces errno no contiene el correspondiente código de error del Sistema que es, por contra, almacenado en doserror.  Finalmente, en otras ocasiones el código es reflejado en errno y no en doserrno.

Ejemplo para mostrar los errores del sistema:

int i = 0;
while(_sys_errlist[i++]) printf("%s\n", _sys_errlist[i]);
return 0;

_floatconvert
_fmode Esta variable controla si la apertura de ficheros se realizará por defecto en modo binario o texto para las funciones de Librería Estándar fopen(), fdopen() y freopen() ( 5.5.2). En consecuencia puede adoptar dos valores que corresponden a dos constantes predefinidas: O_TEXT y O_BINARY en Borland C++, y _O_TEXT, _O_BINARY en MS Visual.

Su valor puede ser establecido mediante una función de librería:  setmode() en Borland C++, y _setmode() en MS Visual C++.

_new_handler
_osmajor
_osminor
_osversion
_sys_errlist
_sys_nerr
_threadid
__throwExceptionName
__throwFileName
__throwLineNumber
_timezone Sintaxisextern long _timezone;

Esta variable contiene la diferencia de tiempo en segundos entre la hora GMT y la hora local LST (local standard time).  Es utilizada por funciones de hora/fecha y calculada por la función de Librería tzset().  En Win32 este valor es obtenido del Sistema Operativo.  Ejemplo:

cout << _timezone;  // ->  -3600

Comentario:  El sistema está en un uso horario GMT +01:00 (meridiano de Madrid-Bruselas-París).

_tzname

Sintaxisextern char* _tzname[2]

Como puede verse, se trata de una matriz de punteros a carácter. que representan componentes de la variable de entorno TZ ( 1.7.1):

_tzname[0] señala a una cadena de tres caracteres representando el nombre del uso horario.

_tzname[1] señala a una cadena de tres caracteres con el nombre de la zona DST ("Daylight Daving Time"). Si este valor no existe, _tzame[1] señala a una cadena nula.

En los sistemas Win32, estos valores se obtienen del SO.  Ejemplo:

cout << _tzname[0];  // ->  PST

cout << _tzname[1];  // ->  PDT

Comentario:  Resultados obtenidos compilando con MS Visual C++.

_wtzname Sintaxisextern wchar_t *const _wtzname[2]

Esta variable se define como un puntero constante a carácter ( 4.2.1e).  Es la versión de caracteres anchos ( 2.2.1a1) de la anterior.

_version
tm Se trata de una estructura que define el tiempo. Es utilizada por diversas funciones de la STL que tienen que ver con la fecha y la hora: asctime, gmtime, localtime, mktime y strftime.

Más información en el capítulo correspondiente de la Librería Estándar ( 5.5.1).  Ver ejemplo ( 4.5.5c).

clock_t Sintaxistypedef long clock_t;

Este tipo define el valor devuelto por la función clock() definida en <time.h>, que devuelve el tiempo de procesador transcurrido desde el comienzo de la invocación del programa. Más información en el capítulo correspondiente de la Librería Estándar ( 5.5.1).  Ejemplo ( 9.1).

  Tema relacionado:   Constantes manifiestas ( 1.4.1a)

  Inicio.


[1]  Muchos de estos valores tienen una correspondencia casi exacta, incluso con los mismos nombres, en la RTL de MS Visual C++.