Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El siguiente programa de origen de C se compone de dos archivos de código fuente. Proporciona información general sobre las distintas declaraciones y definiciones posibles en un programa de C. En las secciones posteriores de este libro se describe cómo escribir estas declaraciones, definiciones e inicializaciones, y cómo utilizar las palabras clave de C como static
y extern
. La función printf
se declara en el archivo de encabezado de C STDIO.H.
Se supone que las funciones main
y max
están en archivos independientes y la ejecución del programa comienza con la función main
. No se ejecuta ninguna función de usuario explícita antes de main
.
/*****************************************************************
FILE1.C - main function
*****************************************************************/
#define ONE 1
#define TWO 2
#define THREE 3
#include <stdio.h>
int a = 1; // Defining declarations
int b = 2; // of external variables
extern int max( int a, int b ); // Function prototype
int main() // Function definition
{ // for main function
int c; // Definitions for
int d; // two uninitialized
// local variables
extern int u; // Referencing declaration
// of external variable
// defined elsewhere
static int v; // Definition of variable
// with continuous lifetime
int w = ONE, x = TWO, y = THREE;
int z = 0;
z = max( x, y ); // Executable statements
w = max( z, w );
printf_s( "%d %d\n", z, w );
return 0;
}
/****************************************************************
FILE2.C - definition of max function
****************************************************************/
int max( int a, int b ) // Note formal parameters are
// included in function header
{
if( a > b )
return( a );
else
return( b );
}
FILE1.C contiene el prototipo de la función max
. Este tipo de declaración se denomina a veces "declaración adelantada" porque la función se declara antes de que se utilice. La definición de la función main
incluye llamadas a max
.
Las líneas a partir de #define
son directivas de preprocesador. Estas directivas indican al preprocesador que reemplace los identificadores ONE
, TWO
y THREE
por los números 1
, 2
y 3
, respectivamente, en FILE1.C. Sin embargo, las directivas no se aplican a FILE2.C, que se compila por separado y se vincula con FILE1.C. La línea a partir de #include
indica al compilador que incluya el archivo STDIO.H, que contiene el prototipo de la función printf
. Las directivas de preprocesador se explican en la Referencia del preprocesador.
FILE1.C utiliza la definición de declaraciones para inicializar las variables globales a
y b
. Las variables locales c
y d
se declaran pero no se inicializan. El almacenamiento se asigna para todas estas variables. Las variables estáticas y externas, u
y v
, se inicializan automáticamente en 0. Por consiguiente solo a
, b
, u
y v
contienen valores significativos cuando se declaran porque se inicializan, ya sea de forma implícita o explícita. FILE2.C contiene la definición de función para max
. Esta definición satisface las llamadas a max
en FILE1.C.
La duración y la visibilidad de identificadores se tratan en Duración, ámbito, visibilidad y vinculación. Para más información sobre las funciones, vea Funciones.