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 | Sintaxis: extern 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 | Sintaxis: extern int _argc; Esta variable adopta el valor pasado al argumento argc de la función main ( 4.4.4). |
_argv | Sintaxis: extern 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 | Sintaxis: extern 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 | Sintaxis: extern 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; |
_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 | Sintaxis: extern 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 |
Sintaxis: _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 | Sintaxis: extern 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 | Sintaxis: typedef 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)
[1] Muchos de estos valores tienen una correspondencia casi exacta, incluso con los mismos nombres, en la RTL de MS Visual C++.