variable funcion example estatica ejemplos c static keyword ansi-c

funcion - Qué significa estático en ANSI-C



variable estatica en c (2)

Solo como una respuesta breve, hay dos usos para la palabra clave static al definir variables:

1- Las variables definidas en el alcance del archivo con palabra clave static , es decir , las funciones externas definidas, serán visibles solo dentro de ese archivo. Cualquier intento de acceder a ellos desde otros archivos dará como resultado un símbolo no resuelto en el momento del enlace.

2- Las variables definidas como static dentro de un bloque dentro de una función persistirán o "sobrevivirán" a través de diferentes invocaciones del mismo bloque de código. Si se definen inicializados, entonces se inicializan solo una vez. generalmente se garantiza que las variables static se inicialicen a 0 por defecto.

Posible duplicado:
¿Qué significa "estático" en un programa C?

¿Qué significa la palabra clave static en C?

Estoy usando ANSI-C. He visto en varios ejemplos de código que usan la palabra clave static delante de las variables y al frente de las funciones. ¿Cuál es el propósito en caso de usar con una variable? ¿Y cuál es el propósito en caso de usar con una función?


static dentro del cuerpo de una función, es decir, utilizado como clasificador de almacenamiento variable, hace que esa variable retenga su valor entre llamadas a funciones; podría decirse que una variable estática dentro de una función es una variable global visible solo para esa función. Este uso de static siempre hace que la función que se utiliza en el hilo no sea segura , debe evitarla.

El otro caso de uso es usar static en el ámbito global, es decir, para variables y funciones globales: las funciones estáticas y las variables globales son locales para la unidad de compilación, es decir, no aparecen en la tabla de exportación del objeto binario compilado. Por lo tanto, no contaminan el espacio de nombres. ¡Declarar estático todas las funciones y variables globales a las que no se puede acceder desde fuera de la unidad de compilación (es decir, el archivo C) en cuestión es una buena idea! Solo tenga en cuenta que las variables estáticas no deben colocarse en archivos de encabezado (excepto en casos especiales muy raros).