본문 바로가기

c언어123

c언어 여러가지 전처리기와 매크로, 다중 소스 파일을 이용하여 여러 가지 문제 풀기(ASSERT 매크로 작성하기, 비트 매크로 작성하기, 여러가지 버전 정의하기(디럭스 버전과 스탠다드 버전 정.. c언어 여러 가지 전처리기와 매크로, 다중 소스 파일을 이용하여 여러 가지 문제 풀기(ASSERT 매크로 작성하기, 비트 매크로 작성하기, 여러 가지 버전 정의하기(디럭스 버전과 스탠더드 버전 정의하기), 리눅스 버전과 윈도 버전 분리하기, 헤더 파일 중복 포함 막기, 전처리기 사용해서 원의 면적 구하기) 네 안녕하세요, 이번 포스팅에서는 지금까지 배웠던 전처리기들과 매크로, 그리고 다중 소스 파일을 이용하여 여러 가지 문제들을 풀어보는 시간을 가져보려 합니다. 매크로를 거는 것과 다중 소스 파일을 다루는 것은 매우 중요한 부분들 중 하나이므로, 잘 알아두셔야 합니다. 그럼 지금부터 시작하도록 하겠습니다. 1. ASSERT 매크로 작성하기 ASSERT 매크로는 프로그램을 디버깅할 때 자주 쓰이는 매크로입.. 2023. 2. 22.
c언어 비트 필드 구조체에 대하여 알아보기 c언어 비트 필드 구조체에 대하여 알아보기 네 안녕하세요, 이번 포스팅에서는 비트 필드구조체에 대하여 알아보도록 하겠습니다. 비트 필드 구조체는 구조체의 한 종류인데, 일반적인 구조체와는 좀 다른 특징을 지니고 있습니다. 그럼 어떤 특징이 있는지 한 번 보도록 하겠습니다. 1. 비트 필드 구조체란? 비트 필드 구조체는 쉽게 말하면 구조체의 멤버들일 비트 단위로 쪼개져 있는 구조체입니다. 그렇기 때문에 비트들을 멤버로 가지며, 비트를 원하는 만큼 할당할 수 있기 때문에 메모리 효율이 그만큼 올라갑니다. 간단한 예시로 상품 정보를 저장하는 비트 필드 구조체를 작성해 보도록 하겠습니다. struct product { unsigned style : 3; unsigned size : 2; unsigned colo.. 2023. 2. 22.
c언어 다중 소스 파일에 대하여 알아보기 c언어 다중 소스 파일에 대하여 알아보기 네 안녕하세요, 이번 포스팅에서는 다중 소스 파일에 대하여 알아보도록 하겠습니다. 지금까지 제가 설명드렸던 것들은 전부 단일 파일로 이루어진 것들이었습니다. 하지만 실제로 우리가 작업을 하다 보면 정말 많은 파일들을 연결해서 하나의 파일로 쏴서 출력하는 걸 하게 됩니다. 그걸 우리는 다중 소스 파일이라고 합니다. 그래서 이번 포스팅에서는 이 다중 소스 파일에 대하여 자세히 알아보는 시간을 가져보려고 합니다. 그럼 지금부터 시작하도록 하겠습니다. 1. 소스 파일을 여러 개를 만드는 이유 우리가 소스 파일을 여러 개를 만드는 이유는 서로 관련이 있는 함수들은 같이 모아서 저장하면 다음에 그 함수를 쓸 일이 생기면 그냥 호출만 하면 되기 때문에 오히려 그 편이 가독성도.. 2023. 2. 22.
c언어 #if, #else, #elif, #endif에 대하여 알아보기 c언어 #if, #else, #elif, #endif에 대하여 알아보기 네 안녕하세요, 이번 포스팅에서는 #if, #else, #elif, #endif에 대하여 알아보도록 하겠습니다. 이전 포스팅에서 배웠던 #ifdef와 같이 조건부 컴파일을 하는 전처리기들인데요, 이들에 대하여 좀 더 자세하게 알아보는 시간을 가져보도록 하겠습니다. 그럼 지금부터 시작하겠습니다. 1. #if의 조건부 컴파일 #ifdef의 경우는 매크로의 값은 상관하지 않았지만, #if의 경우는 매크로의 값에 따라서 컴파일 여부를 결정합니다. 그리고 #if는 우리가 잘 쓰는 if문과 비슷하게 관계 연산자나 논리 연산자를 쓸 수 있습니다. 그리고 그 조건은 상수 수식이어야 합니다. 예를 들자면 이렇게 할 수 있겠네요. #if DEBUG =.. 2023. 2. 21.