본문 바로가기

C언어15

C언어 참조 비트(bit)와 바이트(byte) 컴퓨터는 모든 데이터를 2진수로 표현하고 처리합니다. 비트(bit)란 컴퓨터가 데이터를 처리하기 위해 사용하는 데이터의 최소 단위입니다. 이러한 비트에는 2진수의 값(0과 1)을 단 하나만 저장할 수 있습니다. 바이트(byte)란 위와 같은 비트가 8개 모여서 구성되며, 한 문자를 표현할 수 있는 최소 단위입니다. 바이트 저장 순서(byte order) 컴퓨터는 데이터를 메모리에 저장할 때 바이트(byte) 단위로 나눠서 저장합니다. 하지만 컴퓨터가 저장하는 데이터는 대게 32비트(4바이트)나 64비트(8바이트)로 구성됩니다. 따라서 이렇게 연속되는 바이트를 순서대로 저장해야 하는데, 이것을 바이트 저장 순서(byte order)라고 합니다. 이때 바이트가 저장되는 순서.. 2020. 7. 5.
C언어 컴파일 헤더 파일(header file) C언어에서 함수는 사용되기 전에 먼저 해당 함수의 원형이 선언되어야 합니다. 이 원칙은 표준 함수에도 그대로 적용되며, 표준 함수 또한 사용되기 전에 해당 함수의 원형이 선언되어야 합니다. 이러한 표준 함수의 원형 및 표준 함수와 관련된 다양한 정보를 가지고 있는 파일을 표준 헤더 파일이라고 합니다. 또한, 사용자는 자신만의 사용자 헤더 파일을 자유롭게 만들 수도 있습니다. 헤더 파일의 확장자는 보통 .h를 사용하며, #include 선행처리 지시자를 사용하여 다른 파일에 포함시킬 수 있습니다. 표준 헤더 파일 표준 함수의 원형 및 표준 함수와 관련된 다양한 정보를 가지고 있는 표준 헤더 파일은 그 크기가 상당히 큽니다. 하지만 크기가 큰 헤더 파일을 포함한다고 프로그램.. 2020. 7. 5.
C언어 선행처리 선행처리(preprocess)란? 선행처리란 실행 파일을 생성하는 과정에서 소스 파일 내에 존재하는 선행처리 지시문을 처리하는 작업을 의미합니다. 이러한 선행처리 작업은 컴파일하기 전 선행처리기(preprocessor)에 의해 먼저 처리됩니다. 선행처리기는 코드를 생성하는 것이 아니라, 컴파일러가 컴파일하기 좋도록 소스를 재구성해 주는 역할만을 합니다. 선행처리문의 특징 1. 선행처리문은 선행처리 문자(#)로 시작합니다. 2. 선행처리문은 코드 내에서 하나의 라인을 모두 차지하며, 선행처리문 뒤에 C언어 코드를 추가하여 같이 사용할 수 없습니다. 3. 선행처리문은 다른 C언어의 명령문과는 달리 맨 뒤에 세미콜론(;)을 붙이지 않습니다. 4. 선행처리문은 소스 파일 어디에나 위치할 수 있지만, 선행처리문이.. 2020. 7. 5.
C언어 입력 & 출력 콘솔 입출력 콘솔 입출력을 이해하기 위해서는 우선 C언어의 기본적인 입출력 방식에 대해 알고 있어야 합니다. 버퍼(buffer) 지금까지 우리가 사용한 printf(), scanf(), puts() 함수 등은 C언어의 표준 입출력 함수입니다. 이러한 표준 입출력 함수를 사용할 때에는 버퍼(buffer)라는 임시 메모리 공간을 사용하게 됩니다. 버퍼를 사용하면서 얻을 수 있는 장점은 다음과 같습니다. 1. 문자를 하나씩 전달하는 것이 아닌 묶어서 한 번에 전달하므로, 전송 시간이 적게 걸려 성능이 향상됩니다. 2. 사용자가 문자를 잘못 입력했을 경우 수정을 할 수가 있습니다. 하지만 입력 작업에 버퍼를 사용하는 것이 반드시 좋은 것만은 아닙니다. 빠른 반응이 요구되는 게임과 같은 프로그램에서는 키를 누르는.. 2020. 7. 5.
C언어 구조체 구조체란? 구조체(structure type)란 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입입니다. 구조체는 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있습니다. 배열이 같은 타입의 변수 집합이라고 한다면, 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것입니다. 이때 구조체를 구성하는 변수를 구조체의 멤버(member) 또는 멤버 변수(member variable)라고 합니다. 구조체의 정의와 선언 C언어에서 구조체는 struct 키워드를 사용하여 다음과 같이 정의합니다. 문법 struct 구조체이름 { 멤버변수1의타입 멤버변수1의이름; 멤버변수2의타입 멤버변수2의이름; ... }; struct라는 키워드를 사용하여 구조체의 시작을 알리고.. 2020. 7. 5.
C언어 문자 기본적인 입출력 C언어에서는 기억장치에 저장되는 파일을 다루는 것과 마찬가지 방식으로 입출력 장치를 다룹니다. 따라서 키보드, 모니터와 같은 대부분의 콘솔 장치도 C 프로그램에서는 자동으로 열리는 파일처럼 다뤄집니다. C언어에서는 stdin 표준 스트림을 통해 입력 장치를 다루며, stdout 표준 스트림을 통해 출력 장치를 다루게 됩니다. 스트림(stream) C 프로그램은 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림(stream)이라는 것을 통해 다룹니다. 스트림(stream)이란 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미합니다. 즉, 스트림은 운영체제에 의해 생성되는 가상의 연결 고리를 의미합니다. C언어에서 파일과의 연결을 위한 스트림은 사용자가 직접 생성하고 소멸시켜야 .. 2020. 7. 5.