Diferença entre Macro e Função Inline

Índice:

Diferença entre Macro e Função Inline
Diferença entre Macro e Função Inline

Vídeo: Diferença entre Macro e Função Inline

Vídeo: Diferença entre Macro e Função Inline
Vídeo: What is difference between Macro and Function 2024, Julho
Anonim

Key Difference – Macro vs Função Inline

Uma macro é um fragmento de código, que é uma diretiva do pré-processador. Uma função inline é um recurso de aprimoramento do C++ para minimizar o tempo de execução de um programa. Portanto, a principal diferença entre Macro e Função Inline é que uma macro é verificada pelo pré-processador enquanto uma função inline é verificada pelo compilador.

Uma macro é incluída no início do programa precedida por um sinal de cerquilha. Quando há o nome da macro no programa, ele é substituído pelo conteúdo da macro.

O que é Macro?

O pré-processador é um programa que processa o código-fonte antes de passar pelo compilador. Ele opera usando a linha de comando do pré-processador ou as diretivas. No programa, as diretivas do pré-processador são colocadas no programa fonte antes do programa principal. Antes que o código-fonte passe pelo compilador, ele é verificado pelo pré-processador quanto às diretivas do pré-processador. As diretivas do pré-processador têm o símbolo. Ao contrário de outras instruções, elas não terminam com ponto e vírgula. Um tipo de diretiva de pré-processador é macro. Geralmente, as macros são escritas em letras maiúsculas.

Diferença entre Macro e Função Inline
Diferença entre Macro e Função Inline

Figura 01: Programa C++ com Macros

De acordo com o programa acima, a linha 3 e a linha 4 indicam macros. Ao calcular a área, o valor de PI é substituído usando a macro definida. Na linha 14, volume=CUBE(valor), o pré-processador expande a instrução como volume=(valorvalorvalor). Encontrar o cubo pode ser escrito como uma função, mas aqui é escrito usando uma macro. Se houver uma instrução como volume=CUBE(x+y), ela será expandida para volume=(x+yx+yx+y).

Alguns tokens de programação podem facilmente ser digitados incorretamente. Eles podem ser substituídos usando macros. por exemplo. define AND &&, define OR ||. Uma definição de macro também pode incluir expressões como define AREA 45.56.

O que é Função Inline?

Quando uma função é chamada, o compilador leva algum tempo para executá-la. Se a função não for muito complexa, o programador pode convertê-la em uma função inline. Consulte o programa abaixo.

Diferença entre Macro e Função Inline_Figura 2
Diferença entre Macro e Função Inline_Figura 2

Figura 02: Função sem Inline

O print_hello é uma função simples. Ele imprime a string “Hello” quando a função é chamada. O tempo de execução dessa função é de 0,187s. Ao usar a palavra-chave inline da seguinte forma, o tempo de execução é reduzido para 0,064s.

Diferença chave entre macro e função inline
Diferença chave entre macro e função inline

Figura 03: Função Inline

Portanto, usando a palavra-chave inline, o tempo de execução é reduzido. As funções inline podem não funcionar se houver loops, instruções switch e se a função contiver variáveis estáticas ou funções recursivas.

Qual é a diferença entre macro e função inline?

Macro vs Função Inline

Uma macro é um fragmento de código, que é uma diretiva de pré-processador que é incluída no início do programa precedida por um sinal de hash. Uma função inline é um recurso de aprimoramento do C++ para minimizar o tempo de execução de um programa.
Tempo de avaliação
Na macro, o argumento é avaliado cada vez que é usado no programa. Inline, o argumento é avaliado uma vez.
Verificado por
Uma macro é verificada pelo pré-processador. Uma função inline é verificada pelo compilador.
Palavra-chave
Marco usa define. A função inline usa a palavra-chave 'inline'.
Uso
Macro pode ser usado para definir constantes, expressões, para substituição de texto literal e para definir funções etc. Uma função inline pode ser usada para minimizar o tempo de execução do programa.
Rescisão
Macro termina com a nova linha. A função inline termina com a chave no final da função inline.
Ponto Definidor
Um Marco é definido no início do programa. Uma função inline pode estar dentro ou fora da classe.

Resumo – Macro vs Função Inline

Este artigo discutiu a diferença entre Macro e Função Inline. Esses conceitos são usados na programação C++. A diferença entre Macro e Função Inline é que uma macro é verificada pelo pré-processador enquanto uma função inline é verificada pelo compilador.

Recomendado: