*전처리기 개요

- 출처: c언어 프로그래밍 강의 자료|한성현 교수님
*#define
- 매크로 상수
프로그램 전체에서 하나의 기호 상수를 다른 이름으로 대치시키도록 전처리기에게 알려준다.
ex) #define PI 3.141592
→ PI를 찾아 컴파일하기 전에 모두 3.141592로 바꾸어 준다.
- 매크로 함수
매개변수가 있는 함수같은 매크로
(실습 예제 5.1)
· 매크로 상수 : AA → 2로 변경
· 매크로 함수 : sum3(i,j,k) → ((i)+(j)+(k))로 변경

*#include
#include <파일명> : 표준 입출력 함수들을 사용하기 위해 <stdio.h>와 같은 표준 헤더 파일을 프로그램에 포함시키는 것
#include "파일명" : 표준 헤더 파일이 아닌 프로그래머가 만든 파일을 포함시킬 때 사용
*미리 정의된 매크로
- 프로그래머를 위하여 컴파일러가 미리 제공하는 매크로
__LINE__ : 소스 내의 행번호
__DATE__ : 전처리기 실행(컴파일) 날짜
__TIME__ : 전처리기가 실행된(컴파일한) 시간
__TIMESTAMP__ : 전처리기가 실행된 시간과 날짜
__FILE__ : 디렉토리를 포함한 소스 파일의 이름
*실습 소스 수정
#define _CRT_SECURE_NO_WARNINGS // Visual Studio에서 scanf 사용 시 경고를 막기 위한 전처리기 지시문
}
*연산자

출처: c언어 프로그래밍 강의 자료|한성현 교수님
*연산자의 우선순위와 결합성
- precedence와 associativity는 연산자가 여러 개 있을 때 계산 순서를 결정하는 규칙이다.
· precedence(우선순위): 어떤 연산자를 먼저 계산할지 정하는 기준
→ ex) 3+4*5에서 *가 +보다 우선순위가 높아서 먼저 계산됨
· associativity(결합): 우선순위가 같은 연산자들끼리 어떤 방향으로 계산할지 정하는 규칙
→ ex) 10-5-2는 왼쪽부터 계산(좌결합)해서 (10-5)-2
*단항 연산자
(실습 예제 6.2)

*대입 연산자
- "변수=수식"과 같이 대입하는 연산
1) a=b;
a라는 변수에 b변수 값을 대입
2) a=b+c;
a라는 변수에 b변수의 값과 c변수의 값을 더한 값을 대입
3) x=y=10;
대입 연산자는 결합성이 ←방향이기 때문에 y=10을 먼저 실행
*혼합 대입 연산자
a=a+5; → a+=5; //a의 값을 5 증가
a=a-3; → a-=3; //a의 값을 3 감소
a=a*2; → a*=2; //a의 값 2배
a= a/2; → a/=2; //a 값을 나누기 2
· a의 값을 1 증가하는 방법 : a=a+1; a+=1; a++; ++a;
· a의 값을 1 감소하는 방법 : a=a-1; a-=1; a--; --a;
(실습 예제 6.3)

*관계(비교) 연산자
- 결과가 참이면 1 거짓이면 0으로 나온다.
(실습 예제 6.4)

== : 같은지 비교하는 연산자
!= : 같지 않은지 비교하는 연산자
(실습 예제 6.5)

*논리 연산자
&& (ampersand) - AND : 두 피연산자가 모두 참일 때 참
|| (pipe) - OR : 둘 중 하나만 참이면 참
! - NOT : 피연산자가 참이면 거짓으로, 거짓이면 참으로 만듦
+추가 정리)
c언어에서 참과 거짓으로만 따질 때 0만 거짓이며, 나머지는 모두 참이다.
short circuit rule : 결과가 이미 정해지면 뒤의 연산은 생략하는 규칙
· && (AND)
→ 앞이 **거짓(0)**이면 뒤는 볼 필요 없이 전체가 거짓
· || (OR)
→ 앞이 **참(0이 아님)**이면 뒤는 볼 필요 없이 전체가 참
(실습 예제 6.6)

(실습 예제 6.7)

*윤년 계산

'c언어 > 복습 과제' 카테고리의 다른 글
| c프로그래밍 10주차 (0) | 2026.05.06 |
|---|---|
| c프로그래밍 9주차 (0) | 2026.04.29 |
| c프로그래밍 6주차 (0) | 2026.04.08 |
| c프로그래밍 5주차 (0) | 2026.04.01 |
| c프로그래밍 3주차 (0) | 2026.03.18 |