C언어10 C언어 - 비트 연산자 총정리 비트 연산 (AND, OR, XOR, 시프트)C언어가 시스템 프로그래밍의 표준 언어로 오랜 시간 자리를 지켜온 핵심 이유 중 하나는 메모리의 비트(Bit) 수준까지 직접 다룰 수 있다는 점이다. 운영체제 커널, 임베디드 펌웨어, 네트워크 프로토콜 구현 같은 영역에서는 한 바이트의 어떤 비트가 1인지 0인지를 정확히 제어하는 능력이 곧 성능과 효율을 결정한다. 이를 가능하게 하는 도구가 비트 연산자(Bitwise Operator)이며, AND·OR·XOR·NOT의 네 가지 논리 연산자와 좌·우 시프트의 두 가지 이동 연산자로 구성된다(출처: cppreference — Bitwise operators). 정보처리기사 실기에서도 비트 연산의 결과를 2진수와 10진수로 추적하는 문제가 자주 출제된다. 본 글은 .. 2026. 5. 5. C언어 - 전처리기와 매크로 매크로 (define, ifdef, 실기)C 프로그램이 실행 파일로 만들어지기까지는 일반적으로 알려진 컴파일 외에도 그보다 앞서 진행되는 단계가 있다. 바로 전처리(Preprocessing)이다. 우리가 익숙하게 사용하는 #include 한 줄 역시 사실은 컴파일러가 아닌 전처리기가 처리하는 지시문이다. 전처리기는 소스 코드에 적힌 #으로 시작하는 모든 지시어를 해석하고, 그 결과로 만들어진 새로운 소스를 비로소 컴파일러에 넘긴다(출처: cppreference — Preprocessor). 정보처리기사 실기에서도 #define으로 정의된 매크로의 치환 결과와 괄호 누락에 따른 부작용을 묻는 문제가 자주 출제된다. 본 글은 전처리 단계의 의미와 핵심 지시문, 그리고 시험 빈출 패턴을 코드 예시와 함께 정리.. 2026. 5. 5. C언어 - 파일 입출력 C언어 파일 (fopen, fread, 실기)지금까지의 C 프로그램은 모두 메모리 위에서만 동작했다. 즉 프로그램이 종료되면 그동안 처리한 데이터도 함께 사라진다. 그러나 현실의 응용 프로그램은 학생 명단을 파일에 저장하거나, 로그를 텍스트로 기록하거나, 이미지 같은 바이너리 파일을 직접 다루어야 하는 경우가 대부분이다. 이러한 영속적인 데이터 처리를 가능하게 하는 도구가 바로 파일 입출력(File I/O)이다(출처: cppreference — File I/O). 정보처리기사 실기에서도 fopen·fprintf·fscanf의 호출 흐름과 모드 문자열의 차이를 묻는 문제가 자주 출제된다. 본 글은 FILE 구조체의 개념과 핵심 함수, 그리고 시험 빈출 패턴을 코드 예시와 함께 한 번에 정리한다. 제가 학교.. 2026. 5. 5. C언어 - 동적 메모리 할당 C언어 malloc (free, 동적, 실기)지금까지 다룬 변수와 배열은 모두 컴파일 시점에 크기가 결정되는 정적 할당 방식이었다. 그러나 실제 프로그램은 실행 도중에야 비로소 필요한 데이터의 크기를 알 수 있는 경우가 훨씬 많다. 사용자가 입력할 학생 수가 미리 정해져 있지 않거나, 파일을 읽어 들이고 나서야 그 크기를 알게 되는 상황이 대표적이다. 이러한 문제를 해결하기 위해 C언어는 실행 시점에 메모리를 요청하고 해제할 수 있는 동적 메모리 할당(Dynamic Memory Allocation) 기능을 제공한다(출처: cppreference — Memory management). 정보처리기사 실기에서도 malloc과 free의 활용, 그리고 캐스팅과 sizeof를 결합한 코드의 출력 결과를 묻는 문제.. 2026. 5. 5. C언어 - 구조체와 공용체 C언어 구조체 (union, enum, 실기)지금까지 살펴본 변수와 배열은 모두 단일 자료형의 데이터를 다루는 도구였다. 그러나 현실의 데이터는 그렇게 단순하지 않다. 학생 한 명을 표현하려면 학번(정수), 이름(문자열), 학점(실수) 같은 서로 다른 자료형의 정보를 한 묶음으로 관리해야 하며, 이를 가능하게 하는 도구가 바로 구조체(struct)이다(출처: cppreference — struct/union/enum). 이와 비슷하면서도 결정적으로 다른 형태인 공용체(union)와 열거형(enum)도 함께 다뤄지며, 세 가지 모두 사용자가 정의하는 새로운 자료형으로 묶인다. 정보처리기사 실기에서도 구조체 멤버 접근과 typedef를 활용한 코드의 출력 결과를 묻는 문제가 자주 출제된다. 본 글은 코드 예.. 2026. 5. 3. C언어 - 배열과 문자열 C언어 배열 (문자열, strlen, 실기)배열은 같은 자료형의 데이터를 한 묶음으로 관리하는 가장 기본적인 자료구조이며, 문자열은 그 배열 위에서 만들어지는 가장 자주 쓰이는 응용 형태이다. C언어는 별도의 문자열 자료형을 제공하지 않고 char 배열을 문자열로 사용하기 때문에, 배열과 문자열은 사실상 같은 메커니즘을 다른 관점에서 다루는 두 얼굴이라고 할 수 있다(출처: cppreference — Arrays). 두 개념을 정확히 이해해야 메모리 동작·포인터 연산·표준 라이브러리 함수가 모두 자연스럽게 연결된다. 정보처리기사 실기에서도 배열의 초기화 결과와 문자열 함수의 동작을 묻는 문제가 매회 출제되므로, 본 글은 코드 예시와 함께 핵심 개념을 한 번에 정리한다. 제가 학교 C언어 첫 학기에 가장 .. 2026. 5. 3. 이전 1 2 다음