C: ámbito de una variable

Josepanaero

Buenas, tengo una duda, a ver sabéis resolverla. Tengo el siguiente código:

int x;

void lolazo(int x){
	x = 3;
}

Aquí estoy asignando 3 a la variable x de la función, no a la global. El problema es: ¿cómo hago para distinguir entre global y local? En c++ es usando this para referirse a la local, pero en C no sé cómo puedo distinguir una de otra.

Un saludo.

EDIT: Se me ocurre utilizar alias, pero no me gusta mucho la solución, no me resulta muy elegante, sería del tipo:

int x;
int &x_externa = x;

void lolazo(int x){
	x = 3;
	x_externa = 1337;
}
LOc0

En C la tabla de símbolos local tiene prioridad sobre la global, así que te toca usar nombres distintos. Una cosa que puedes hacer es añadir el prefijo g_ a las variables globales.

Salu2 ;)

bLaKnI

Focus

cabron

De las referencias olvidate por que en C no existen.

Lo mejor es que uses una función de acceso, en lugar de poner la variable global directamente:


int valor ;

int leerValor()
{
    return valor;

}

void cambiarValor(int nuevoValor)
{
    valor = nuevoValor;
}



void miFuncion(int valor)
{
      if(valor == leerValor() )

}

Usuarios habituales

  • cabron
  • bLaKnI
  • LOc0
  • Josepanaero