c언어 #1 - c언어 실행부터 컴파일까지 (국비2일차)

 안드로이드 java & kotlin을 배우는 과정임에도 c언어부터 시작하는 이유는 무엇일까?

1. c언어를 선수 과목으로 배우면 다른 프로그래밍 언어를 배우기가 한결 쉽기 때문이다.

2. c언어를 바탕으로 다른 언어들의 특장점을 구별하기가 쉬워진다.

이런 이유로 c언어를 약 14일 정도 배우게 되었다. 

 

 

오늘 다룰 것들

  1. c언어 프로그램 구조
  2. 새 프로젝트 열기
  3. Printf
  4. 컴파일하기

 

1. c언어 프로그램 구조

솔루션이라는 큰 틀 안에

프로젝트라는 폴더가 있고

      그 안에 파일이 있는 구조이다.

따라서, 예제를 하나 푼다고 가정하면 하나의 새 솔루션을 만드는 것이다.
(큰 프로젝트라면 한 솔루션 안에 여러 프로젝트, 여러 파일이 있을 수 있다)

그래서 예제 1번은 새로운 솔루션1, 예제 2는 솔루션2를 만들 것이다.

2. 새 프로젝트 열기

그러나 똑똑한 비주얼 스튜디오는 사용자가 귀찮아할 것을 미리 알고(?)
새 프로젝트를 만들면 알아서 솔루션을 만들어준다.

 

여러 가지 항목 중에 windows 데스크톱 마법사를 누르고 다음으로 간다.

누르면 보이는 것과 같이 프로젝트 이름과 함께, 위치, 솔루션 이름을 설정하라고 나온다.
(앞에 말했듯 솔루션이 알아서 만들어지는 것이다.)

(솔루션 및 프로젝트를 같은 디렉터리에 배치를 클릭하면 솔루션과 프로젝트를 합쳐서 하나의 폴더만 만들겠다는 것이다. 체크를 안 하면 솔루션이라는 폴더 안에 프로젝트라는 폴더가 생기고 그 안에 폴더가 만들어진다.)

만들기를 누르면 어떤 앱 종류를 만들지 골라야 한다.

우리는 여기서 콘솔 애플리케이션을 고른다. (아직 시작단계이고, 기본을 공부하기 때문이다)

그리고 여기서 빈 프로젝트를 체크할 것이다.

그리고 다음으로 넘어간다.

그렇다면 이렇게 생긴 화면이 우릴 반겨줄 것이다. 

여기서 우리가 마지막으로 해야 할 것은

코드를 작성할 메모장 같은 것을 키는 것이다.

그러기 위해 소스파일을 오른쪽 마우스 버튼으로 클릭한다.

그리고 추가에서 새 항목을 선택한다.

그러면 새 항목을 추가하라고 위의 사진처럼 나오는데 c++ 파일을 누른 뒤 이름을 바꿔줄 것이다.

이름을 바꿔줘야 한다

꼭 확장자명을 .c로 해줘야 c언어로 된다.(기억하자!)

여기까지 하면 c언어를 할 수 있는 준비가 끝나게 된다.

 

3. Printf

코딩을 처음 배우는 모든 이가 처음에 배우는 명령어는 바로 print라는 명령어 일 것이다.

이 명령어는 내가 쓴 글을 화면으로 띄우는 기능이다. 

화면 출력을 하는 명령어 Printf엔 3가지 방법이 있다.

1. printf("출력 Data");

2. printf("출력서식",  출력 Data);

3. printf("출력서식", 변수 이름);


그렇다면 바로 저 백지에다가 명령어를 쓰면 되는 것인가? 

그렇지 않다.

코딩을 하기 위해선 특정 영역을 선언해줘야 한다.
그 영역을 우리는 함수라 고하고 { } 중괄호를 통해 선언하여 구분해줘야 한다.

 

이렇게 구분한다고 친다면 3가지 영역이 있는 것이다.

그럼 갑자기 void가 뭔 뜻이냐라고 궁금할 텐데 이는 함수로 이후에 제대로 설명하겠다.

 

그리고 영역 중 void main()으로 된 것은 반드시 있어야 한다. 

모든 함수는 main 함수로 시작해 main 함수가 끝나면서 종료되기 때문이다.


다시 돌아와서 

이렇게 작성을 하면 과연 화면에 나올까?

그렇지 않다. 사실 우리가 입력한 것을 컴퓨터가 인식하고 다시 전기 신호를 통해서 화면에 나오는 과정이 필요하다.

근데 그렇게 하기 위해선 200줄가량의 코딩이 필요하다.?!?!?!?!?

아니 그러면 어떻게 그걸 초보가 해요?라고 할 수 있는데 

c언어를 만든 사람은 이를 미리 예견하여 전처리라는 것을 만들었다.

 

기억하자!

#include <stdio.h>

#include <stdio.h>를 입력하면 우리는 200줄을 입력할 필요가 없다.

즉 저 괴상해 보이는 코드는 미리 만들어둔 파일을 불러오는 기능인 것이다.

 

(많은 사람들이 stdio를 스튜디오로 생각하는 사람이 있는데
사실 이건 standard input output. header의 줄임말이다.)


저장이 안된 상태

 파일 저장 여부를 확인하는 가장 쉬운 방법은 .c다음에 *이 있냐 없냐이다.

있는 것이 저장이 안 된 상태이며, 없는 것이 저장이 된 상태이다.


 

4. 컴파일하기

다시 돌아가

이제 코드 작성을 완료했으면 이 코드가 제대로 작동하는지 봐야 한다.

즉 컴파일러를 실행시켜야 한다. 그러기 위해 우리가 비주얼 스튜디오를 설치한 것이다.

상단 메뉴에서 빌드를 누르고 맨 밑에서 2번째인 컴파일을 클릭한다.

그럼 화면 아랫부분에 출력이 나타난다. hello world가 나오는 부분이 아니라

작업이 어떻게 되고, 문제가 없는지 있는지를 보여주는 부분이다.

우리가 처음 위치로 설정했던 폴더로 들어가 보자. 

그럼 x64라는 새로운 폴더가 나와있을 것이다.

그럼 obj 파일이 만들어진 것을 알 수 있는데

이 파일을 그냥 누르면 기계어이기 때문에 이상한 것만 뜨게 된다.

또 아까말한 #include <stdio.h>가 포함이 안된 것이다.

하지만 비주얼 스튜디오는 이 모든 것을 다 해주는 프로그램이다.

 

다시 돌아가 메뉴 중 빌드에서 첫 번째에 있는 솔루션을 빌드를 누른다.

그럼 출력에 성공이라고 뜨면서 Hello.exe가 나온다.

어? exe? 익숙하지 않은가? 보통 컴퓨터 프로그램을 받으면 exe이지 않은가?

맞다!!!!!! 바로 이걸 찾아서 누르는 것이다.

 

하지만 아무것도 나오지 않을 것이다.

우리가 짠 코드는 시작하자마자 닫히게 구성했기 때문이다.

 

ㅋㅋㅋㅋㅋㅋㅋ

자 이 부분까진 우리가 코딩을 하려면 알아야 하는 부분이었다.

이젠 이렇게 할 필요가 사실 없다. 비주얼 스튜디오는 이를 편하게 보여주는 기능이 있기 때문이다.

맨 위 메뉴 중 디버그에서 디버그하지 않고 시작을 눌러보자.

그럼 이렇게 결과물이 나온다!!! 드디어 개발자로 첫발을 내디딘 것이다!

 

자 그렇다면 만약 우리가 지금 코드에서 수정을 한다면 자동으로 고쳐질까?

아니다. .c파일은 수정이 된다 하더라도

컴파일한 파일은 바뀌지 않는다.(.obj) 

따라서, 수정한 코드를 다시 컴파일하고 디버그하지 않고 시작을 눌러야 한다.
(사실 수정 후 디버그하지 않고 시작을 눌러도 비주얼 스튜디오에서 알아서 처리해 준다.)

꼭 기억하자!

 


bonus tip

만약 출력에 에러나 난다면 이런 형식으로 나오는데

코드가 너무 길어지게 되면 찾는 것이 어려워진다.

하지만 이 프로그램은 좋은 기능을 제공하는데

바로 오류 목록에서 오류 부분을 더블클릭하면 그 코드가 입력된 부분으로 이동한다.!!!!!