Recomendado, 2024

Escolha Do Editor

Diferença entre Definição e Declaração

Definição e Declaração são termos muito confusos se você é novo em programação. Os dois conceitos são diferentes em alguns aspectos, pois a definição envolve a atribuição de memória às variáveis, enquanto que na memória de declaração não é alocada. A declaração pode ser feita mais de uma vez, pelo contrário, uma entidade pode ser definida exatamente uma vez em um programa.

A definição é automaticamente uma declaração na maior parte do cenário. Agora vamos entender a diferença entre definição e declaração com o gráfico de comparação detalhado.

Gráfico de comparação

Base para comparaçãoDefiniçãoDeclaração
BasicDetermina o valor armazenado na variável, função ou classe.Especifica o nome e o tipo de variável, função, classe etc.
Alocação de memóriaOcorreNão acontece.
RepetiçãoAs declarações não podem ser definidas novamente se já estiverem definidas.Redeclaração pode ser facilmente possível.
EscopoDuração é determinadaA visibilidade é especificada

Definição de Definição

Definição identifica o código ou dados associados ao nome da variável, função, classe, etc. A definição é necessariamente exigida pelo compilador para alocar o espaço de armazenamento para a entidade declarada. Quando uma variável é definida, ela contém uma quantidade de memória composta por vários bytes para essa variável. Uma definição de função produz código para a função. Podemos definir um elemento de programa apenas uma vez em um programa, porque a definição é uma especificação exclusiva de um elemento de programa. A relação entre declaração e definição pode ser um-para-muitos .

Em algumas situações, um elemento de programa não pode ser definido, mas declarado, por exemplo, quando uma função nunca é invocada ou seu endereço nunca é usado, mesmo que seja declarado. Outro exemplo é aquele em que a definição de classe não é usada enquanto deve ser declarada.

Definição de Declaração

A declaração é usada para especificar os nomes para o programa, como o nome de uma variável, função, namespace, classes, etc. Nenhum nome pode ser usado em um programa sem sua declaração. Os elementos do programa podem ser declarados várias vezes, ao contrário da definição. Declarações múltiplas só podem ser alcançadas quando as declarações diferentes são feitas usando o formato idêntico. Declaração é o meio de fornecer visibilidade ao elemento do programa na perspectiva de compiladores.

A declaração serve o objetivo da definição, só em certos casos a condição não se implica que se dão abaixo.

  • Quando o membro de dados estáticos é declarado dentro de uma declaração de classe, nesse caso, não é uma declaração. Porque gera apenas uma cópia para todos os objetos da classe e os membros de dados estáticos são os componentes dos objetos de um tipo de classe fornecido.
  • Se uma declaração for typedef statement.
  • Uma variável é declarada sem inicializador ou corpo da função, mas inclui especificadores externos. Indica que a definição poderia ser para a outra função e fornece o nome de ligação externa.
  • A declaração de nome de classe sem incluir definição como classe T;

Geralmente, a declaração ocorre em um escopo . O escopo decide a visibilidade do nome declarado e a duração do objeto definido.

Principais diferenças entre definição e declaração

  1. A definição de um elemento do programa determina o valor associado a esse elemento. Por outro lado, a declaração de um elemento do programa especifica seu nome e tipo para o compilador.
  2. A definição do elemento do programa reserva uma certa quantidade de memória, enquanto a declaração não envolve a alocação de memória.
  3. Um elemento do programa pode ser declarado várias vezes. Por outro lado, a definição incorpora uma especificação única com o nome do elemento do programa que pode ser distinguido por qualquer código ou dado.
  4. O escopo na declaração descreve a visibilidade da variável, função, objeto, classe, enumeração, etc. Em contraste, na definição, o escopo se relaciona com a duração.

Exemplo de Definição

  • Definição variável assim como a declaração:
    int r = 10;
  • Definição de função:
     int adicionar (int x, int y) {int a; a = x + y; return a; } 

Exemplo de Declaração

  • Declaração variável:
    extern int r;
  • Declaração de função:
    int add (int p1, int p2);

Conclusão

O processo de declaração é usado para tornar o elemento do programa visível para o compilador e não requer alocar a memória. Inversamente definição é uma declaração que armazena reserva, em palavras simples o compilador reserva o espaço de memória para a entidade declarada.

Top