선행처리 질문입니다.
얀새
2023.04.01
질문 제목 : 질문 내용 : #includestdio.h#define square num*numint main(void)
{
int num=10;
#if num
printf(%d\n,num);
#else
printf(no\n);
#endif#if square==num
printf(%d\n,num*num);
#else
printf(no no\n);
#endif return 0;
}
위는 컴파일러에 옮겨놓았을 시, 삭제되는 부분을 회색으로 표시해 두었습니다.보다시피 제가 생각한 것이랑 결과가 반대입니다..#if num - 부분에서는 num은 10이니까 참이라서 당연히 실행되어야 한다고 생각했는데.. 안되네요 뭐 이부분은 숫자 1만을 참으로 인정한다는 전제로 넘길 수 있었습니다.그러나#if square==num
- 이부분이 왜 참이 되지요?..선행처리가 진행되고 나면
num*num == num 이라는 공식으로 변하는데..이해가 안됩니다.도와주세요
-
첫빛
감사합니다. 근데 뒷부분은 왜 그럴까요?..
-
초시계
#if num
이 줄을 해석하는 시점에서는 num의 값을 모릅니다.
아직 컴파일을 하기 전이니까요.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2698909 | 서비스 요청 고객 관리 프로그램 짜는것좀 도와주세요ㅜㅜ (4) | 궁수자리 | 2025-06-21 |
2698882 | 프로그래밍좀 짜주세요 (3) | 황예 | 2025-06-21 |
2698855 | 카프-라빈 알고리즘 코딩 분석좀 도와주세요.. | 꽃봄 | 2025-06-20 |
2698829 | 학점계산기 (7) | MyWay | 2025-06-20 |
2698782 | 기초적인 함수 질문이요ㅠㅠㅠㅠ | 내담 | 2025-06-20 |
2698749 | 프로그램 짜던 도중 패닉입니다...ㅜ | 파랑 | 2025-06-19 |
2698719 | 조건부컴파일 질문입니다.~ (2) | 큐트 | 2025-06-19 |
2698693 | 재귀 함수 에러 | 바닐라 | 2025-06-19 |
2698673 | 고민이있는데 들어좀주세요!! (1) | 초코맛캔디 | 2025-06-19 |
2698644 | 1부터 n까지의 합을 구하는데 엄청긴숫자의 합을 구할때는 어떻게 해야하나요? (4) | 슬우 | 2025-06-18 |
2698616 | 다른 함수로 안넘어갑니다..;;; | 도1도캣 | 2025-06-18 |
2698587 | 배열하다 막혀서... (3) | WhiteCat | 2025-06-18 |
2698559 | 문자열을 비우는방법 (2) | 하늘 | 2025-06-18 |
2698528 | 착하고 친절한 선생씌구해염~ㅋㅋ (4) | 옆집언니야 | 2025-06-17 |
2698502 | 자료구조 큐 | 캔서 | 2025-06-17 |
2698477 | 실행화면 배경문의요 | 선아 | 2025-06-17 |
2698430 | 변수의 값이 저장이 않되네요;; (4) | 피네 | 2025-06-16 |
2698404 | C#을 배울려고 하는데 C나 C++을 알아야 하나요 ?? (1) | 신당 | 2025-06-16 |
2698342 | 프로그램 질문점녀 (4) | 데빌의눈물 | 2025-06-16 |
2698318 | 파일 입출력 질문입니다~ (2) | 꽃 | 2025-06-15 |