Variable estática interna vs variable estática externa con ejemplos en C

La variable estática puede ser interna o externa según el lugar de declaración. Las variables estáticas se almacenan en segmentos de datos inicializados.

Variables estáticas internas: Las variables estáticas internas se definen como aquellas que tienen variables estáticas que se declaran dentro de una función y se extienden hasta el final de la función en particular.

Sintaxis:

 
main( ) 
{
  static datatype variable;
  // other statements
}

Ejemplo:

// C program to demonstrate
// Internal Static Variables
  
#include <stdio.h>
  
int value();
  
int main()
{
    printf("%d", value());
    return 0;
}
  
int value()
{
    static int a = 5;
    return a;
}
Producción:

5

Variables estáticas externas: Las variables estáticas externas son aquellas que se declaran fuera de una función y se configuran globalmente para todo el archivo/programa.

Sintaxis:

 
static datatype variable;

main()
{
  statements
}

function1()
{
  statements
}

Ejemplo:

// C program to demonstrate
// External Static Variables
  
#include <stdio.h>
  
int add(int, int);
  
static int a = 5;
  
int main()
{
    int c;
    printf("%d", add(a, c));
}
  
int add(int c, int b)
{
    b = 5;
    c = a + b;
    return c;
}
Producción:

10

Diferencia entre variables estáticas internas y variables estáticas externas:

Parámetro Variables estáticas internas Variables estáticas externas
Palabra clave «estático» «estático»
Enlace La variable estática interna no tiene vinculación. Las variables estáticas externas tienen vinculación interna.
Declaración Las variables estáticas internas se declaran dentro de la función principal. Las variables estáticas externas se declaran encima de la función principal.
Comparación Las variables estáticas internas son similares a las variables automáticas (locales). Las variables estáticas externas son similares a las variables globales (externas).
Visibilidad Las variables estáticas internas están activas (visibilidad) en la función particular. Las variables estáticas externas están activas (visibilidad) en todo el programa.
Toda la vida Las variables estáticas internas están vivas (vida útil) hasta el final de la función. Las variables estáticas externas están vivas (de por vida) en todo el programa.
Alcance Las variables estáticas internas tienen almacenamiento persistente con alcance de bloque (funciona solo dentro de un bloque o función en particular). Las variables estáticas externas tienen almacenamiento permanente con alcance de archivo (funciona en todo el programa).

Publicación traducida automáticamente

Artículo escrito por akshara_a y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *