Forensic/혼공C 챌린지

1주차 과제

Ron Weasley 2022. 7. 6. 23:09

< 기본 미션 >

혼공단 6기를 수료하였고, 다시 8기로 돌아오긴 했는데 이미 vs가 설치가 되어있기 때문에 과정은 생략하겠습니다.

 

<1장>

01.1 프로그램과 C언어

프로그램은 일의 순서를 뜻합니다. 즉, 우리가 영화 프로그램을 본다고 가정했을 때 순서는 다음과 같습니다.

1. 영화관을 간다.

2. 티켓을 산다.

3. 간식을 산다.

4. 상영실에 입장한다.

5. 영화를 본다.

 

이렇게 순서를 나뉘어 볼 수 있는데, 이런 방법은 한글로 적어놨기 때문에 컴퓨터가 이해를 할 수 없는 표현입니다.

그래서 우리가 배우는 프로그래밍 언어는 컴퓨터가 이해할 수 있는 정확한 표현의 규칙을 정의해 놓은 언어입니다.

 

01.1.1 C언어의 장점

C언어의 장점은 크게 3가지로 분류가 됩니다.

1. 시스템 프로그래밍이 가능합니다.

- 이 말은 운영체제를 개발할 목적으로 만든 언어로 하드웨어를 제어하는 시스템 프로그래밍이 가능합니다.

- C를 어셈블리어로 변형을 시키던가, 나중에 가서 배울 포인터로 메모리의 주소를 직접 다루게 되는 것과 같습니다.

 

2. 이식성을 갖춘 프로그램을 만들 수 있습니다.

- 이식성이란 기종이 다른 컴퓨터에서도 사용할 수 있는 프로그램을 뜻하는것으로, 표준을 지켜 프로그램을 만들면 컴퓨터의 종류가 바뀌더라도 같은 프로그램을 게속해서 활용할 수 있다는 것입니다. 쉽게, A라는 intel 데스크탑에서 만든 C언어 소스코드를 Mac으로 가져간다고 해서 프로그램이 작동하지 않는 것은 아닙니다.

 

3. 함수를 사용하여 개별 프로그래밍이 가능합니다.

- 함수란? 우리가 특정 행위를 하는 소스코드를 따로 분류를 시켜두는 것입니다.

요런식으로 sum 함수를 만들어서 total에 sum 함수를 불러주기만 하면 자동적으로 계산이 됩니다.

 

01.2 컴파일과 컴파일러

- 소스파일 : C 언어로 작성한 문서

- 기계어 : 0과 1로 된 특별한 신호

- 컴파일 : 소스파일을 컴파일러를 통해 컴퓨터가 이해하는 기계어로 바꾸는 과정

 

01.2.1 컴파일 과정 3단계

1. 전처리 단계

- 전처리 과정은 전처리 지시자에 따라 소스 파일을 가공하는 과정입니다. ( 전처리 지시자 : #include <stdio.h> )

위 전처리 지시자는 프로그램에 필요한 함수 중 외부에 이쓴 함수를 불러들이는데, 전처리 과정은 소스 파일을 컴퓨터에 맞게 편집하는 일이므로 파일의 형태에는 변화가 없다.

 

2. 컴파일 단계

- 전처리가 끝난 파일을 컴파일 하게되면 개체 파일(Object File)이 됩니다. 개체 파일은 CPU가 해석할 수 있는 명령어들로 이루어진 기계어 파일이지만 바로 실행하는 것은 불가능합니다. 왜냐하면 프로그램은 운영체제에 의해서 실행되므로 설치된 운영체제가 인식할 수 있는 형태로 변형시켜줘야 하기 때문입니다.

 

3. 링크 단계

- 개체 파일에 startup code를 결합하는 과정을 수행하는데 이 과정을 링크라고 합니다. stratup code는 프로그램을 실행하기 전 필요한 준비작업을 수행하며 main 함수를 호출하여 우리가 작성한 프로그램의 코드가 실행되도록 합니다. 그래서 프로그램을 만들 때 main 함수가 꼭 있어야 하는 것입니다.

 

<2장>

01.2 main 함수의 구조

- main 함수는 머리와 몸통으로 구성되어 있습니다. 머리는 함수 원형이라고 하며 함수의 이름과 필요한 데이터를 표시하고, 함수에서 실행할 일들은 몸통안에 작성하며 필요에 따라 공백이 포함될 수 있습니다. 몸통을 종료할 때는 return 0; 를 넣어줌으로써 프로그램을 종료합니다.

 

출력 함수(printf)

- 화면에 데이터를 출력할 때는 printf함수를 사용합니다. 위 total을 출력하기 위해서 printf() 함수를 쓰는것을 볼 수 있습니다.

- printf를 사용하기 위해서는 전처리 지시자인 #include와 라이브러리 헤더 파일인 <stdio.h> 를 입력해주셔야 됩니다.

- 큰따옴표로 묶게되면 문자열을 출력하고 %d, %s 등 변환 문자는 뒤에서 하겠습니다.

 

제어 문자 출력

- 제어 문자란, 문자는 아니지만 출력 방식에 영향을 주는 문자를 의미합니다. ( 한 칸 밑으로 띄우기 )

- \(백슬래시) 문자로 시작되며, \n, \b, \r, \a .... 등이 있다. 가장 많이 쓰는 것은 한 칸 밑으로 띄우는 개행문자 \n

 

정수와 실수 출력

- printf를 쓸 때, %d, %s등 변환 문자가 있다고 했는데 %d는 정수, %s는 문자열, %lf는 실수를 출력합니다.

 

02.2 상수와 데이터 표현 방법

진법별 수 표현 방법

10진수 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

8진수 : 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12

16진수 : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

 

실수 상수 표현법

소수점 형태 : 아라비아 숫자 0~9, +, - 기호와 소수점을 사용하여 표현

지수 형태 : 이공계열에서 다루는 지수형태는 0.000034를 3.4e-5로 표현

 

나머지 음수의 변환 같은것은 제 블로그 링크를 달아줄테니 한 번 읽어보십시오.

https://lemonpoo22.tistory.com/18

 

1주차 클리어!!

 

'Forensic > 혼공C 챌린지' 카테고리의 다른 글

6주차 과제  (0) 2022.08.16
5주차 과제  (0) 2022.08.12
4주차 과제  (0) 2022.08.04
3주차 과제  (0) 2022.07.24
2주차 과제  (0) 2022.07.18