Constellation Knowledge Network - Preguntas y respuestas sobre Bagua - ¿Cuál es la diferencia entre declaración y definición en lenguaje C?

¿Cuál es la diferencia entre declaración y definición en lenguaje C?

Si se refiere a la declaración y definición de variables:

Desde un principio de compilación, la declaración solo le dice al compilador que se usará un cierto tipo de variable, pero el compilador no le asignará memoria. La definición es asignar memoria.

Para las siguientes dos líneas de código:

void function ()

{

int a;

int b = 1;

a = 0;

}

Para la primera línea de código, el compilador no hará nada hasta la tercera oración, a. =0, no se le asignará nada en la pila solo si . Y para int b = 0; en esta oración, el compilador generará una instrucción y le asignará un valor. Si lo desensamblas, el código que ves puede verse así:

Empujar 1;

Empujar 0;

Por supuesto, es posible que el compilador no haga esto como Bueno, hazlo. También es posible que al declarar int a, el compilador coloque un valor de desperdicio en la pila y lo asigne al tercer elemento, dependiendo de la elección específica del compilador. Por lo tanto, una declaración no tiene por qué ser una definición, pero una definición debe ser una definición.

Sin embargo, la siguiente declaración debe ser solo una declaración:

Entero externo a;

Hay una variable int a en esta tabla, que debe definirse En otros lugares, el compilador no hará nada para asignar memoria en este momento, porque es una declaración, que solo indica que el siguiente código se refiere a un símbolo, que es de tipo int a.

Si te refieres a la declaración y definición de la función:

Declaración: Generalmente en el archivo de encabezado, le dices al compilador: Aquí tengo una función llamada función() , deja que el compilador sepa que esta función existe.

Definición: Generalmente en el archivo fuente, el cuerpo de la función se escribe durante la implementación de la función.

上篇: El murciélago embrujado de Zhou Gong_¿Qué significa el murciélago embrujado de Zhou Gong? 下篇: El sueño de Kingfisher sobre el duque Zhou_El sueño de Kingfisher sobre el duque Zhou
Artículos populares