메크로
반복적인 일들을 쉽게하기 위해 만들어 놓은 것.
vs. 함수 = 한 번 호출하면 사라짐
메크로는 전처리에서 처리하므로 모든 프로그램에 공통적으로 들어가게 할 수 있다
#define N 10 변수처럼 선언
#define SQR(X) X*X 함수처럼 선언
#define N 10
#define SQR(X) X*X
SQR(N); // SQR(10) = 100
SQR(N+2); // SQR(12) = 144 아님!!
// SQR(N+2) 와 같이 매개변수로 매크로를 사용한 경우에는 계산하는 것이 아니라
// N+2 를 통째로 넘김
// N+2*N+2
// 10 + 2 * 10 * 2 = 32
시프트 연산

ex) 10 >> 2
(오른쪽으로 두 비트 이동을 의미)
1010 은 0010이 된다. (10 -> 2)
ex) 10 << 2
(왼쪽으로 두 비트 이동을 의미)
1010은 101000이 된다. (10 >> 40)
연습문제
#define VALUE1 1
#define VALUE2 2
main(){
float i
int j, k, m;
i = 100 / 300;
j = VALUE1 & VALUE2;
K = VALUE | VALUE2;
if( j && k || i) m = i + j;
else m = j + k;
printf("i = %.1f, j = %d k = %d m = %03\n",i, j, k, m);
}
i = 0.0
j = 0
k = 3
m = 003
'정보처리기사' 카테고리의 다른 글
[정보처리기사] C언어 특강 18 ~ 1강 정리(복잡한 제어문, 반복문 ) (0) | 2024.10.03 |
---|---|
[정보처리기사] C언어 특강 13 ~ 17강 정리(삼항연산자, 제어문, 반복문) (0) | 2024.10.01 |
[정보처리기사] C언어 특강 11강 정리 (0) | 2024.09.26 |
[정보처리기사] C언어 특강 10~11강 정리 (0) | 2024.09.19 |
[정보처리기사] C언어 특강 5~9강 정리 (0) | 2024.09.12 |