Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué significa Estático en los programas C?

¿Qué significa Estático en los programas C?

estático se puede utilizar para variables internas, variables externas y funciones. Cuando se aplica a una variable interna, especifica que la clase de almacenamiento de la variable es estática. Cuando se aplica a variables y funciones externas, la estática se utiliza para limitar el alcance de la variable o función al archivo fuente en el que reside la variable o función externa.

1. Durante todo el proceso de ejecución del programa, no importa cuántas veces se llame a la función donde se encuentra la variable interna estática, la variable interna estática solo se inicializará una vez, es decir, la inicialización. se completa cuando el programa está en ejecución.

2. Durante las dos llamadas de la función, la unidad de almacenamiento donde se encuentra la variable interna estática no se liberará, por lo que su valor se guardará cuando se ejecute la llamada a la función actual y el valor se guardará. todavía existe la próxima vez que se llame. Es decir, el valor de una variable interna estática permanece sin cambios de una llamada a función a la siguiente llamada a función.

3. De forma predeterminada, el alcance de una variable externa es desde la ubicación donde está definida hasta el final del archivo fuente en el que se encuentra.

I. Las funciones se dividen en funciones internas y funciones externas

Cuando un programa fuente consta de varios archivos fuente, C determinará si la función puede ser llamada por funciones en otros archivos fuente. , divide las funciones en funciones internas y funciones externas.

1. Funciones internas (también llamadas funciones estáticas)

Si una función definida en un archivo fuente solo puede ser llamada por funciones en ese archivo, pero no por otras funciones en el mismo. programa Una llamada a una función en un archivo se llama función interna.

Para definir una función interna, simplemente agregue la palabra clave "estática" antes del tipo de función, como se muestra a continuación:

tipo de función estática nombre de función (lista de parámetros de función) {?}

La palabra clave "estática" se traduce al chino como "estática", por lo que las funciones internas también se denominan funciones estáticas. Sin embargo, el significado de "estático" no reside en la forma en que se almacena, sino en que el alcance de la función se limita a este archivo.

La ventaja de usar funciones internas es que cuando diferentes personas escriben diferentes funciones, no tienen que preocuparse de si la función que definen tendrá el mismo nombre que una función en otro archivo, porque el mismo El nombre no importa.

2. Función externa

Definición de función externa: En la definición de una función, si no hay la palabra clave "estática", o está precedida por la palabra clave "externa", significa que esta función es una función externa:

[extern] Tipo de función nombre de función (lista de parámetros de función) {?}

Al llamar a una función externa, debe especificarla:

[extern] tipo de función nombre de función (lista de tipos de parámetros) [, nombre de función 2 (lista de tipos de parámetros 2)?

2. El lenguaje C es un lenguaje abstracto, orientado a procesos y lenguaje de programación de propósito general que se usa ampliamente Desarrollado en la parte inferior. El lenguaje C se puede compilar de forma sencilla, ocupándose de la memoria subyacente.

Aunque el lenguaje C proporciona muchas funciones de procesamiento de bajo nivel, sigue siendo multiplataforma y su especificación estándar permite que los programas C se compilen en una variedad de plataformas informáticas, incluidos algunos procesadores integrados y supercomputadoras.

Información ampliada:

El papel de la estática en el lenguaje C. El significado literal de estática puede llevarnos fácilmente por mal camino, pero en realidad hace tres cosas.

1. El punto más importante: esconderse.

Al compilar varios archivos al mismo tiempo, todas las variables y funciones globales que no utilizan el prefijo estático tienen visibilidad global.

Si se utilizan archivos estáticos, se ocultarán de otros archivos fuente. Por ejemplo, si antepone las definiciones de a y msg con static, main.c no las verá.

Para las funciones, la función de static se limita a ocultar, mientras que para las variables, static también tiene las dos funciones siguientes:

1.

2. el contenido de la variable de persistencia. Las variables almacenadas en el área de datos estáticos se inicializarán cuando el programa comience a ejecutarse por primera vez, que también es el único momento en que se inicializa.

2. Hay dos tipos de variables almacenadas en el área de almacenamiento estático: variables globales y variables estáticas. Sin embargo, en comparación con las variables globales, las variables estáticas pueden controlar el rango visible de variables; Las variables estáticas todavía se utilizan para ocultar.

3. La tercera función de static es inicializar a 0 de forma predeterminada. Las variables globales también tienen esta propiedad porque las variables globales también se almacenan en el área de datos estáticos. En el área de datos estáticos, el valor predeterminado de todos los bytes en la memoria es 0x00, lo que a veces reduce la carga de trabajo del programador. Por ejemplo, al inicializar una matriz dispersa, podemos establecer todos los elementos en 0 uno por uno y luego asignar valores a los pocos elementos que no son 0.

Si lo defines como estático te ahorras la molestia de poner todos los elementos a 0 al principio. Otro ejemplo es usar una matriz de caracteres como una cadena, pero agregar "\0" al final de la matriz de caracteres cada vez es demasiado problemático. Si define la cadena como una cadena estática, puede ahorrarse este problema, porque "\0" debe estar al final de la cadena.

Finalmente, resume las tres funciones de la estática en una frase. En primer lugar, la función más importante de la estática es ocultar; en segundo lugar, debido a que las variables estáticas se almacenan en un espacio de almacenamiento estático, son persistentes y tienen un valor predeterminado de 0.

Enciclopedia Baidu: función estática

Enciclopedia Baidu: lenguaje c