전처리기 #if, #endif 질문입니다.
CreamyGirl
2023.04.01
질문 제목 :
전처리기의 #if ~ #endif 는 조건에 맞을 경우만 컴파일을 한다는 거면,
if문 보다 더 효율적인 건가요? if는 다 컴파일해서 조건찾는건데
전처리기는 아예 컴파일도 안해버리니 더 효율적이지 않을까요?
질문 내용 :예시 코드입니당~
#include stdio.h#define code 2int main(void) {
double num1 = 0, num2 = 0, result = 0; printf(실수 두 개를 입력하세요 : );
scanf(%lf %lf, &num1, &num2);#if(code == 1)
result = num1 / num2;
printf(나눗셈 결과 : %lf \n, result);
#endif#if(code == 2)
result = num1 / num2;
printf(코드는 2);
#endif return 0;
}
-
주리
감사합니다. 제 생각이 짧았습니다.
너무 단순하게 생각했네요 ㅋ -
푸르나
문젠 컴파일 타임중 일부와 런타임에 결정되는 값에 대해선 결정할수가 없습니다.
템플릿과도 다른 점이 컴파일 타임 직전에 프리컴파일러에 의해 결정되야만 하기 때문에 컴파일 과정에서 연산되는 값의 경우도 프리컴파일 구문에선 확정되지 않아서 쓸수가 없습니다.