Diferença Entre Inline e Macro A diferença entre

Anonim

Inline vs Macro

C ++ passou muito longe no campo da programação de computadores nos dias de hoje. Sendo uma linguagem poderosa, às vezes é um pouco confuso para os programadores por causa de sua enorme biblioteca de funções. A função Inline é uma delas que pode ser facilmente confundida com macros no idioma.

Não é que haja uma pequena diferença entre os dois, mas eles podem ser um pouco confusos por causa das propriedades que possuem. Neste artigo, estaremos discutindo mais sobre as diferenças entre a função inline e macros em C ++.

Inline

Uma função inline é como qualquer outra função em C ++ e também é chamada de maneira regular. A função que executa é que cria uma cópia da definição da função compilada. Ou seja, cria uma cópia dos itens definidos para compilar. Um exemplo pode ser tomado se estivermos adicionando dois inteiros e chamamos a função inline, o compilador criará uma cópia dos inteiros a serem compilados.

Exemplo:

Inline int sum (int x, int y)

{

Retorno (x + y);

}

Macro

Macros em C ++ implementam a substituição de texto em uma linha de programa. Ou seja, eles substituem o texto de acordo com a mudança definida na função. Ao contrário do inline como uma função, uma macro manipula o código usando uma função. Por exemplo:

#define DOUBLE (X) X * X

int y = 5;

int j = DOUBLE (++ y);

Aqui, obteremos o valor como 30! À medida que a chamada foi feita através de uma macro, "X" foi substituído por ++ y, o que torna ++ y a ser multiplicado por outro ++ y. Isso faz um total de 5 * 6 que é 30 não 6. Seis seria a resposta básica, mas uma resposta errada.

Agora, as macros podem estar causando um bug aqui. Então, uma função inline vem ao resgate, copiando os valores para a memória dos compiladores e compilando-o.

Resumo:

1. Uma função inline cria uma cópia da definição da função.

2. Uma macro substitui o texto como identificado e definido dentro da função.

3. Uma função inline também é aplicada quando uma macro é suposta causar um erro no programa.