Diferença chave - Macro vs função embutida
Uma macro é um fragmento de código, que é uma diretiva do pré-processador. Uma função embutida é 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 embutida é que uma macro é verificada pelo pré-processador enquanto uma função embutida é verificada pelo compilador.
Uma macro é incluída no início do programa, precedida por um sinal de hash. Quando existe o nome da macro no programa, ele é substituído pelo conteúdo da macro.
CONTEÚDO
1. Visão geral e diferença principal
2. O que é macro
3. O que é função embutida
4. Comparação lado a lado - Macro vs função embutida em formato tabular
5. Resumo
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 de origem antes do programa principal. Antes de o código-fonte passar 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.
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 = CUBO (valor), o pré-processador expande a instrução como volume = (valor * valor * valor). Encontrar o cubo pode ser escrito como uma função, mas aqui é escrito usando uma macro. Se houver uma declaração como volume = CUBO (x + y), ela se expandirá para volume = (x + y * x + y * x + y).
Alguns tokens de programação podem ser facilmente 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 4 * 5.56.
O que é função embutida?
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 converter a função em uma função embutida. Consulte o programa abaixo.
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 é 0,187 s. Ao usar a palavra-chave inline da seguinte maneira, o tempo de execução é reduzido para 0,064s.
Figura 03: Função Inline
Portanto, ao usar 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 embutida?
Artigo Diff meio antes da tabela
Macro vs Função Inline |
|
Uma macro é um fragmento de código, que é uma diretiva de pré-processador incluída no início do programa, precedida por um sinal de hash. | Uma função embutida é 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. | Em linha, o argumento é avaliado uma vez. |
Verificado por | |
Uma macro é verificada pelo pré-processador. | Uma função embutida é verificada pelo compilador. |
Palavra-chave | |
Marco usa #define. | A função inline usa a palavra-chave 'inline'. |
Uso | |
A macro pode ser usada para definir constantes, expressões, para substituição de texto literal e para definir funções, etc. | Uma função embutida pode ser usada para minimizar o tempo de execução do programa. |
Terminação | |
Macro termina com a nova linha. | A função embutida termina com a chave no final da função embutida. |
Ponto Definidor | |
Um Marco é definido no início do programa. | Uma função embutida 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 embutida é que uma macro é verificada pelo pré-processador enquanto uma função embutida é verificada pelo compilador.