c언어

19. 전처리기

jhhhpark 2023. 8. 1. 14:55

[연습문제]

 

1. 인자로 32비트 크기의 자료에서 오른쪽 16비트만 잘라내는 매크로를 작성하고, 인자로

0x12345678을 전달했을 때 매크로 사용 결과를 출력하세요.

[소스코드]

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

#define LOWORD(bits)	((int)bits & 0xFFFF0000)
#define LOWORD2(bits)	(((int)bits >> 16) << 16)

void main()
{
	int d = 0x12345678;
	printf("원본 값: 0x%x\n", d);
	printf("비트 하위 16비트 절삭 결과1 : 0x%x\n", LOWORD(d));
	printf("비트 하위 16비트 절삭 결과2 : 0x%x\n", LOWORD2(d));
	return;
}

[실행화면]

 

 

2. _DEBUG 상수가 정의되었을 때는 Debug mode Hello, World! 라고 출력하고, 그렇지 않을 때는 Release mode Hello, World!라고 출력하는 프로그램을 작성하세요. 단, 반드시 조건부 컴파일로 구현하세요.

[소스코드]

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

#ifdef _DEBUG
	#define PRINT_HELLO		printf("Debug mode Hello, World!\n");
#else
	#define PRINT_HELLO		printf("Release mode Hello, World!\n");
#endif

void main()
{
	PRINT_HELLO
	return;
}

[실행결과]