Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

C - Reglas de alcance

Un alcance en cualquier programación es una región del programa donde una variable definida puede tener su existencia y más allá de esa variable no se puede acceder. Hay tres lugares donde las variables se pueden declarar en el lenguaje de programación C −

Entendamos qué son locales y globales variables y formales parámetros.

Variables locales

Las variables que se declaran dentro de una función o bloque se denominan variables locales. Solo pueden ser utilizados por declaraciones que están dentro de esa función o bloque de código. Las variables locales no son conocidas por funciones ajenas a las suyas. El siguiente ejemplo muestra cómo se utilizan las variables locales. Aquí todas las variables a, b y c son locales para la función main().

Demostración en vivo
#include <stdio.h>
 
int main () {

  /* local variable declaration */
  int a, b;
  int c;
 
  /* actual initialization */
  a = 10;
  b = 20;
  c = a + b;
 
  printf ("value of a = %d, b = %d and c = %d\n", a, b, c);
 
  return 0;
}

Variables globales

Las variables globales se definen fuera de una función, generalmente en la parte superior del programa. Las variables globales mantienen sus valores durante la vida útil de su programa y se puede acceder a ellas dentro de cualquiera de las funciones definidas para el programa.

Cualquier función puede acceder a una variable global. Es decir, una variable global está disponible para su uso en todo el programa después de su declaración. El siguiente programa muestra cómo se usan las variables globales en un programa.

Demostración en vivo
#include <stdio.h>
 
/* global variable declaration */
int g;
 
int main () {

  /* local variable declaration */
  int a, b;
 
  /* actual initialization */
  a = 10;
  b = 20;
  g = a + b;
 
  printf ("value of a = %d, b = %d and g = %d\n", a, b, g);
 
  return 0;
}

Un programa puede tener el mismo nombre para las variables locales y globales, pero tendrá preferencia el valor de la variable local dentro de una función. Aquí hay un ejemplo −

Demostración en vivo
#include <stdio.h>
 
/* global variable declaration */
int g = 20;
 
int main () {

  /* local variable declaration */
  int g = 10;
 
  printf ("value of g = %d\n",  g);
 
  return 0;
}

Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −

value of g = 10

Parámetros formales

Los parámetros formales se tratan como variables locales dentro de una función y tienen prioridad sobre las variables globales. El siguiente es un ejemplo −

Demostración en vivo
#include <stdio.h>
 
/* global variable declaration */
int a = 20;
 
int main () {

  /* local variable declaration in main function */
  int a = 10;
  int b = 20;
  int c = 0;

  printf ("value of a in main() = %d\n",  a);
  c = sum( a, b);
  printf ("value of c in main() = %d\n",  c);

  return 0;
}

/* function to add two integers */
int sum(int a, int b) {

   printf ("value of a in sum() = %d\n",  a);
   printf ("value of b in sum() = %d\n",  b);

   return a + b;
}

Cuando el código anterior se compila y ejecuta, produce el siguiente resultado −

value of a in main() = 10
value of a in sum() = 10
value of b in sum() = 20
value of c in main() = 30

Inicializar variables locales y globales

Cuando se define una variable local, el sistema no la inicializa, debe inicializarla usted mismo. El sistema inicializa automáticamente las variables globales cuando las define de la siguiente manera −

Tipo de datos Valor predeterminado inicial
int 0
caracter '\0'
flotar 0
doble 0
puntero NULO

Es una buena práctica de programación inicializar las variables correctamente, de lo contrario, su programa puede producir resultados inesperados, porque las variables no inicializadas tomarán algún valor basura ya disponible en su ubicación de memoria.


Lenguaje C

  1. Reglas de circuito en serie
  2. Reglas de circuito paralelo
  3. Reglas para derivados
  4. Reglas para antiderivadas
  5. Variables de C# y tipos de datos (primitivos)
  6. Ámbito variable de C#
  7. Variables, literales y constantes de C++
  8. C Variables, constantes y literales
  9. Clase de almacenamiento C
  10. Variables y literales de Java
  11. Alcance de la escala de tiempo de Verilog