CT 에서 매크로함수(함수형 매크로, Function-like macro)를 스텁처리할 수 있나요?

수정일 금, 19 6월 시간: 3:02 PM

매크로 함수의 정확한 표현은 함수형 매크로(Function-like macro) 이며, 엄밀히 말하면 함수가 아닙니다.

매크로는 전처리 과정에서 소스코드를 특정 규칙으로 치환해주는 방식으로 동작합니다.


#define SQUARE(x) ((x) * (x))

int main(void) {
    int num = 5;
    int result = 0;
    
    result = SQUARE(num);
    
    return result;
}


예를들어 위와 같은 코드는, 아래와 같이 전처리가 풀리게됩니다.


int main(void) {
    int num = 5;
    int result = 0;
    
    result = ((num) * (num));
    
    return result;
}


따라서 매크로함수(함수형 매크로, Function-like macro)는 함수가 아니므로, 일반적인 방법으로는 스텁처리가 불가능합니다.

해당 매크로에 의해, 원하는 값이 반환되도록 상위 조건을 갖춰서 테스트 해야합니다.


전처리코드를 참고하면 테스트 설계에 도움이 될 수 있습니다.

CT 에서 전처리코드는 아래의 방법으로 확인하실 수 있습니다.


아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.