define 문제 궁금합니다
거늘
2023.04.01
질문 제목 : 질문 내용 :
#includestdio.h
#define m(x,y) (x)(y)?(x):(y)
int main(){
printf(%d, (10*m(10,15)));
}
출력결과는 15라고 나오는데 왜15인가요? 참일때 x를반환하는거 아닌가요? 그럼 10해서 100이라고 생각했는데 뭔가 크게 제가 잘못생각하고있나봐요ㅠㅠㅠ 도와주세요!!
-
힘차
괄호가 없으면 x에 10이 곱해져서 10*10 15 ? 10 : 15 가 됩니다. 100 15는 거짓이 되겠죠.
-
하연
define의 삼항연산자전체를 괄호로 한번더 감싸주시면 원하는 결과가 나올것 같네요.
-
아인
둘 중에서 큰 것을 선택하는 #define입니다.