인라인과 매크로의 차이점

Anonim

인라인 vs 매크로

요즘 컴퓨터 프로그래밍 분야에서 C ++은 너무 멀리 떨어져 있습니다. 강력한 언어이므로, 거대한 함수 라이브러리로 인해 프로그래머에게 약간 혼란 스러울 수 있습니다. 인라인 함수는 언어의 매크로와 쉽게 혼동 될 수있는 함수 중 하나입니다.

둘 사이에 사소한 차이가있는 것은 아니지만, 보유하고있는 특성 때문에 다소 혼란 스러울 수 있습니다. 이 기사에서는 C ++에서 인라인 함수와 매크로의 차이점에 대해 더 자세히 논의 할 것입니다.

Inline

인라인 함수는 C ++의 다른 함수와 마찬가지로 일반적인 방법으로도 호출됩니다. 수행하는 기능은 컴파일 된 함수 정의의 사본을 작성한다는 것입니다. 즉, 컴파일 할 정의 된 항목의 복사본을 만듭니다. 두 개의 정수를 더하고 인라인 함수라고하면 컴파일러는 컴파일 할 정수의 복사본을 만듭니다.

예:

-> ->

인라인 int (int x, int y)

{

Return (x + y);

}

매크로

C ++의 매크로는 프로그램 행에서 텍스트 대체를 구현합니다. 즉, 함수에서 정의 된 변경 사항에 따라 텍스트를 대체합니다. 인라인 함수와 달리 매크로는 함수를 사용하여 코드를 조작합니다. 예:

#define DOUBLE (X) X * X

int y = 5;

int j = DOUBLE (++ y);

여기서 값을 30으로 설정합니다! 호출이 매크로를 통해 수행 되었기 때문에 "X"는 ++ y로 바뀌어 ++ y를 다른 ++ y로 곱합니다. 총 5 * 6이 30이 아닌 6이됩니다. 6은 기본이지만 잘못된 대답 일 것입니다.

이제 매크로가 버그를 일으킬 수 있습니다. 인라인 함수는 값을 컴파일러의 메모리에 복사 한 다음 컴파일하여 구출합니다.

요약:

1. 인라인 함수는 함수 정의의 복사본을 만듭니다. 2. 매크로는 함수 내에서 식별되고 정의 된 텍스트를 대체합니다. 3. 인라인 함수는 매크로가 프로그램에서 버그를 일으킬 것으로 예상되는 경우에도 적용됩니다.