Diferencia entre definición y declaración

La declaración de una variable es para informar al compilador de la siguiente información: nombre de la variable, tipo de valor que contiene y el valor inicial, si lo toma. es decir, la declaración da detalles sobre las propiedades de una variable. Mientras que la definición de una variable dice dónde se almacena la variable. es decir, la memoria para la variable se asigna durante la definición de la variable. En el lenguaje C, la definición y declaración de una variable tiene lugar al mismo tiempo. es decir, no hay diferencia entre declaración y definición. Por ejemplo, considere la siguiente declaración

int a;

Aquí, la información, como el nombre de la variable: a, y el tipo de datos: int, se envía al compilador, que se almacenará en la estructura de datos conocida como tabla de símbolos. Junto con esto, se asignará una memoria de tamaño 2 bytes (dependiendo del tipo de compilador). Supongamos que, si solo queremos declarar variables y no definirlas, es decir, no queremos asignar memoria, entonces se puede usar la siguiente declaración

extern int a;

En este ejemplo, solo se envía la información sobre la variable y no se realiza ninguna asignación de memoria. La información anterior le dice al compilador que la variable a se declara ahora, mientras que la memoria para ella se definirá más tarde en el mismo archivo o en un archivo diferente. La declaración de una función proporciona al compilador el nombre de la función, el número y tipo de argumentos que toma y su tipo de retorno. Por ejemplo, considere el siguiente código,

int add(int, int);

Aquí, se declara una función llamada add con 2 argumentos de tipo int y tipo de retorno int. La memoria no se asignará en esta etapa. La definición de la función se utiliza para asignar memoria para la función. Por ejemplo, considere la siguiente definición de función,

int add(int a, int b)
  {
    return (a+b);
  }

Durante esta definición de función, se asignará la memoria para la función agregar. Una variable o una función se puede declarar cualquier número de veces, pero solo se puede definir una vez. Los puntos anteriores se resumen en la siguiente tabla de la siguiente manera: 

Declaración Definición
Una variable o una función se puede declarar cualquier número de veces Una variable o una función solo se puede definir una vez
No se asignará memoria durante la declaración La memoria se asignará
int f(int);

Lo anterior es una declaración de función. Esta declaración es solo para informar al compilador que una función llamada f con tipo de retorno y argumento como int se usará en la función.

int f(int a)
{
  return a;
} 

El sistema asigna memoria al ver la definición de función anterior.

En la declaración, se conoce el tipo de datos de la variable. En definición, se especifica el valor almacenado en la variable.

Publicación traducida automáticamente

Artículo escrito por SudhaSuresh 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 *