Alcance reglas de función y estructura del programa (notas de estudio)

Reglas de alcance de funciones y programas (notas de estudio)

// An highlighted block
main() {
    
    }
int sp = 0;
double val[MAXVAL];
void push(double f) {
    
    }
double pop(void) {
    
    }

Definición y declaración de variables

Definición de variable

int sp = 0;
double val[MAXVAL];

1. Esta es una definición, además de explicar el tipo de variable, también asigna unidades de almacenamiento para la variable.
2. Las variables externas solo se pueden definir una vez en un archivo, y otros archivos pueden acceder a él a través de declaraciones externas.
3. La longitud de la matriz debe especificarse en la definición de variables externas.
4. La inicialización de variables externas solo puede aparecer en sus definiciones.

Declaración de variable

extern int sp = 0;
extern double val[MAXVAL];

Esta es una declaración de variable, solo describe el tipo de variable y no le asigna unidades de almacenamiento.
La declaración extern no necesita necesariamente especificar la longitud de la matriz.

Alcance

1. El alcance de una variable externa comienza desde su declaración y termina al final del archivo donde se encuentra.
2. Utilice la variable antes de la definición de la variable externa, o la definición y el uso de la variable externa no están en el mismo archivo fuente, la palabra clave extern debe ser obligatoria en la declaración de variable correspondiente.

3. Si las funciones push y pop están definidas en un archivo, y las variables val y sp están en otro archivo, necesita una forma de acceder al
archivo uno.

extern int sp = 0;
extern double val[MAXVAL];
void push(double f) {
    
    }
double pop(void) {
    
    }

Archivo dos

int sp = 0;
double val[MAXVAL];

Variable estática

1.static define variables externas y su alcance es el resto del archivo fuente compilado.
2. La variable estática dentro de la función es una variable local específica, que solo se puede usar en la función, pero siempre existe y siempre ocupa espacio de almacenamiento.

Supongo que te gusta

Origin blog.csdn.net/crazy_eight/article/details/105567313
Recomendado
Clasificación