Diferença entre Inline e Macro

Macro vs em linha

Atualmente, o C ++ foi longe demais no campo da programação de computadores. Por ser uma linguagem poderosa, às vezes fica um pouco confuso para os programadores devido à sua enorme biblioteca de funções. A função embutida é uma delas que pode ser facilmente confundida com macros no idioma.
Não é que exista uma pequena diferença entre os dois, mas eles podem ser um pouco confusos por causa das propriedades que possuem. Neste artigo, discutiremos mais sobre as diferenças entre a função embutida e as macros em C++.

Na linha
Uma função embutida é como qualquer outra função em C ++ e também é chamada da maneira regular. A função que ele executa é que ele cria uma cópia da definição da função compilada. Ou seja, ele cria uma cópia dos itens definidos para compilar. Um exemplo pode ser tomado se adicionarmos dois inteiros e chamarmos de função inline, o compilador criará uma cópia dos números inteiros a serem compilados.
Exemplo:

Soma int em linha (int x, int y)

Retorno (x + y);

Macro
Macros em C ++ implementam substituição de texto em uma linha de programa. Ou seja, eles substituem o texto de acordo com a alteração 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 = DUPLO (++ y);

Aqui, obteremos o valor como 30! Como a chamada foi feita por meio de uma macro, "X" foi substituído por ++ y, o que faz com que ++ y seja multiplicado por outro ++ y. Isso perfaz um total de 5 * 6 que é 30 e não 6. Seis seria a resposta básica, mas errada.

Agora, as macros podem estar causando um erro aqui. Portanto, uma função em linha é resgatada copiando os valores para a memória dos compiladores e, em seguida, compilando-os.

Resumo:

1.Uma função embutida cria uma cópia da definição da função.
2. Uma macro substitui o texto conforme identificado e definido na função.
3.Uma função embutida também é aplicada quando uma macro deve causar um erro no programa.