[C con Clase] Definición conjunta de variables.

Steven Davidson steven en conclase.net
Mar Mar 13 14:49:02 CET 2007


Hola Daniel,

El pasado 2007-03-13 09:18:28, dani escribió:

d> Hola a todos,
d> Tengo un problemilla y es que estoy haciendo un programa que utiliza varias funciones, lo que ocurre es que estas usan ciertos parámetros que deseo que estén en un solo archivo porque si quiero luego cambiarlos solo tenga que hacerlo en este. Antes programaba en  Fortran y en este lenguaje se que ha esto se le llama “module nombre” que se ponía en un solo archivo, al principio de cada subrutina se escribe “use nombre” y el programa entonces usa los parámetros definidos en los module. Mi pregunta es si existe algo así en C/C++.

Creo que lo que nos pides es definir ciertas variables globales dentro de un fichero a usarse con funciones específicas. Esto lo puedes hacer usando el modificador 'static'. Por ejemplo,

// funcs.h

void inicio();
int f( int a );
float g( int a, float b );
void h( char cad[] );


// funcs.cpp

#include "funcs.h"
#include <cstring>

static int numero;
static float valor;
static char nombre[32];

void inicio()
{
  numero = 10;
  valor = 1.23e-5;
  std::strcpy( nombre, "Daniel" );
}

int f( int a )
{
  return numero*numero*valor;
}

float g( int a, float b )
{
  return f( a-1, b );
}

void h( char cad[] )
{
  cad[0] = nombre[0];
}


Las variables globales de "funcs.cpp" no serán accesibles ni compartidas con el resto del programa. Con esto, obtenemos el efecto de que estas variables sólo existen para estas funciones.


Espero que esto sea lo que nos pedías.

Steven


Más información sobre la lista de distribución Cconclase