이 게시물에서는 C++에서 인라인과 매크로의 차이점을 이해할 것입니다.
인라인
-
C++의 함수입니다.
-
컴파일러에 의해 구문 분석됩니다.
-
클래스 내부 또는 외부에서 정의할 수 있습니다.
-
인수를 한 번만 평가합니다.
-
컴파일러는 모든 함수를 '인라인' 함수로 변환하고 모두 확장하지 않을 수 있습니다.
-
클래스 내부에 정의된 짧은 함수는 자동으로 인라인 함수로 만들어집니다.
-
클래스 내의 인라인 함수는 클래스의 데이터 멤버에 액세스할 수 있습니다.
-
인라인 함수는 중괄호를 사용하여 종료할 수 있습니다.
-
디버깅하기 쉽습니다.
-
이는 컴파일 중에 오류 검사를 하기 때문입니다.
-
함수 본문의 모든 명령문을 바인딩합니다.
예
inline return_type funct_name ( parameters ) { . . . }
매크로
-
전처리기에 의해 확장됩니다.
-
프로그램 시작 시 정의됩니다.
-
코드 내에서 사용될 때마다 인수를 평가합니다.
-
항상 확장되어야 합니다.
-
구체적으로 정의해야 합니다.
-
그들은 결코 반의 일원이 되지 않을 것입니다.
-
클래스의 데이터 멤버에 액세스할 수 없습니다.
-
매크로 정의는 새 줄로 끝납니다.
-
컴파일 타임에는 에러 체크가 일어나지 않아 매크로 디버그가 어렵다.
-
종료 기호가 없기 때문에 하나 이상의 명령문을 포함하는 경우 바인딩 문제가 발생합니다.
예
#define macro_name char_sequence