컴퓨터 기초 공부를 하며 알게된 용어를 정리해 보았다.


컴파일 과정

전처리: 전처리 지시자(#include 등)에 따라 소스 파일을 가공하는 과정.

컴파일: (전처리된)소스 코드를 컴퓨터가 이해하는 기계어로 만드는 과정. 이 때에 소스 파일은 개체 파일이 됨.

개체 파일: CPU가 해석할 수 있는 명령어 들로 이루어진 기계어 파일.

컴파일러: 컴파일을 해주는 프로그램(Visual Studio 등).

링크: 개체 파일에 startup code를 결합하는 과정. main 함수를 호출하여 코드가 실행되도록 함. 개체 파일이 실행 파일이 됨.


#include <stdio.h>

: stdio.h 파일의 내용을 프로그램 안에 복사한다. stdio.h: standard input output(표준입출력)을 의미하며, C언어에서 기본으로 사용하는 입출력 함수(printf 등)가 들어 있음.


제어 문자: 문자는 아니지만, 출력 방식에 영향을 주는 문자. 백슬래시(“")와 함께 사용함.

\n : 다음 줄로 이동

\t : tab, 출력 위치를 다음 탭 위치로 이동

\b : backspace, 출력 위치를 한 칸 왼쪽으로 이동

\r : carriage return, 출력 위치를 맨 앞으로 이동

\a : alert, 알럿 경보


진법 표현

10진수: 12

8진수 : 014(숫자 앞에 0을 붙임)

16진수: 0xc(숫자 앞에 0x를 붙임)


문자와 문자열 상수 표현법

문자 상수 : 작은따옴표(‘‘)사용, %c

문자열 상수: 큰따옴표(““)사용, %s


음수의 변환: 절댓값을 2의 보수로 바꾸어 처리(변환 과정 없이 바로 양수와 음수를 더할 수 있음)

  1. 절댓값 변환
  2. 2진수로 변환
  3. 0과 1을 바꿈(1의 보수)
  4. 1을 더함(2의 보수)

int a;
int는 자료형, a는 변수명

정수를 저장할 공간을 a라 이름 붙여 메모리에 4바이트 할당하겠다고 컴파일러에 알려줌.

저장 공간 안에는 초기화를 하지 않으면 쓰레기 값(garbage value)이 들어 있음.

초기화 방법: 대입 연산자(=)를 이용


a = 10;

변수는 대입 연산자 왼쪽에서는 저장 공간(l-value(left value)), 오른쪽에서는 값(r-value(right value))이 됨.


const int a = 10;
a = 20; /*오류*/

const를 사용하면 값을 바꿀 수 없음


정수 자료형

char : 1바이트 정수(아스키 코드 값), %c(문자), %d(숫자)

short: 2바이트 정수, %hd

int : 4바이트 정수, %d

long : 8바이트 정수, %ld

long long : 8바이트 이상 정수(컴파일러 마다 다름), %lld

unsigned 정수 자료형: 양수 전용으로 쓰고 싶을 때 사용, %u


실수 자료형

float : 4바이트 실수, %f , 유효숫자 7자리

double: 8바이트 실수, %lf, 유효숫자 15자리

long double: 8바이트 이상 실수, %Lf


문자열 저장

char 배열명[문자열길이+1] = 문자열;

문자열 배열의 마지막은 \0(null character)이 자동으로 추가됨

char fruit[20] = "strawberry";
strcpy(fruit, "banana");

fruit에 strawberry를 저장한 뒤 strcpy함수를 통해 fruit에 strawberry대신 banana를 저장


예약어와 식별자

예약어: 컴파일러와 사용 방법이 약속된 단어(자료형 이름과 같은 것들(int, double 등))

식별자: 필요에 따라 만들어 사용하는 단어(변수명 등)

식별자 규칙

  1. 알파벳, 숫자, _(밑줄)로 만든다.
  2. 숫자로 시작할 수 없다.
  3. 대문자와 소문자는 서로 다른 식별자로 인식한다.
  4. 예약어는 식별자로 사용할 수 없다.

데이터 입력

int a;
scanf("%d", &a);
  1. scanf 함수에서 변수명을 지정할 때는 &을 붙인다.
  2. scanf 함수에서 사용한 변환 문자와 맞는 형태의 데이터를 입력해야 한다.

Tags:

Updated: