인삿말
안녕하세요 알다브입니다. 저번 시간에
C언어에 대한 소개와 Visual studio 설치에
대해 다뤘습니다. 이번 시간에는 C언어의
구조와 Visual studio에서 간단한 프로그램을
작성하고 실행해보도록 하겠습니다.
Visual studio를 아직 설치하지 못하셨다면 제 이전 글을 통해서 설치해주세요.
자 그럼 시작 해보도록 하겠습니다.
2020/04/19 - [프로그래밍언어/c언어] - C언어 독학 #1. 소개 및 개발 환경(Visual Studio) 설치
visual studio 실행
1단계
Visual studio를 클릭하시면 이 화면이 뜨게 됩니다. 여기서 새프로젝트 만들기를 클릭해주세요.
빈 프로젝트를 선택해주시고 다음을 클릭해주세요.
프로젝트 이름은 Hello World로 설정하겠습니다.
위치는 찾기 쉽게 바탕화면으로 설정하겠습니다.
이제 만들기를 클릭해주세요.
만들기를 클릭하시면 프로젝트 생성이 완료된 화면이 뜨게됩니다.
이제 코드를 작성하기 위해서 소스파일을 생성해야 합니다.
소스파일을 마우스 우클릭하여 새 항목을 추가해주세요.
그러면 이런 화면이 뜰 겁니다.
여기서 중요한 것은 우리가 다루는 것은 C언어이므로
확장명을 .cpp이 아닌 .c로 바꿔야 합니다.
이렇게 이름을 Hello.c로 바꿔주시고 추가를 클릭해주세요.
추가를 해주시면 이렇게 코드를 작성할 수 있는 소스코드 화면이 뜹니다. 여기에 코드를 작성하시면 됩니다.
// 씨포유
#include<stdio.h>
int main(){
printf("Hello World\n");
return 0;
}
코드에 대한 설명은 밑에서 다루도록 하고 우선은 이 코드를 똑같이 작성해줍니다.
여기까지가 저번 시간에 배웠던 프로그램 작성 4단계 중 1단계입니다.
다들 기억 하시죠!?
2단계
코드를 다 작성하셨으면 코드를 기계어로 변환하기 위해 빌드에서 컴파일을 클릭합니다.
위의 코드를 똑같이 작성하셨다면 빌드하는데 성공할 겁니다. 이제 컴파일은 마쳤습니다.
기계어로 변환이 완료됐다는 것인데 그럼 어떤 파일이 생성되었을까요?
바로 obj파일입니다! 프로그램 작성 4단계 중 2단계에서 기계어로 이루어진
오브젝트 파일을 생성한다고 했었죠.
HelloWorld폴더에 있는 Debug폴더에 들어가시면 Hello라는 이름으로 오브젝트 파일이 생성된 것을 확인할 수 있습니다.
3단계
컴파일까지 완료했으면 오브젝트 파일을 실행파일로 변환시켜주기 위해 빌드에서 솔루션 빌드를 클릭합니다.
솔루션 빌드를 코드 작성 후 바로 클릭해도 컴파일과 링크과정을
같이 처리하기 때문에 컴파일 작업을 따로 하지 않아도 됩니다!
빌드에 성공했습니다!
이제 3번째 과정인 실행파일 생성을 마쳤습니다.
4단계
이제 디버그창에서 디버그하지 않고 시작을 클릭해 프로그램을 실행시켜줍니다.
3번째 단계에서 생성한 exe파일을 직접 실행할 수 있지만
Visual studio에서도 실행이 가능합니다.
프로그램 코드가 실행된 화면입니다.
여기까지가 저번 시간에 배운 프로그램 작성 4단계를
아주 간단한 예제로 실습한 것 입니다.
C언어 구조
C언어를 작성해서 프로그램을 구상하는데에 최소 단위는 무엇일까요??
앞에서 다뤘던 코드로 차근차근 설명해드리도록 하겠습니다.
주석
주석은 프로그램의 내용을 설명하기 위한 일종의 메모를 의미합니다.
위에서는 단순히 //씨포유 라고 작성했는데
실제로 복잡한 프로그램을 작성하다 보면
코드만 보고서 내용을 이해하기 어렵거나 오래 걸릴 수 있습니다.
이런 것을 최소화 하고자 주석을 사용해
분석에 도움을 줄 수 있습니다.
복잡한 수식이나 함수를 설명할 때에도
유용하게 쓰일 수 있습니다.
한 줄 주석문은 //내용 으로 쓸 수 있고
여러 줄 주석문은 /* 내용 */ 으로 쓸 수
있습니다.
주석은 프로그램 실행에 영향을 미치지 않습니다!
컴파일러가 주석의 내용은 해석하지 않기 때문입니다.
따라서 주석을 사용하지 않아도 프로그램을 작동시키는 데에는
문제가 없지만 프로그램을 작성시
습관처럼 꼭 사용하는 것을 권장하는 바입니다.
전처리기, 헤더파일
특수 문자 '#'는 전처리기를 의미합니다. 전처리기는 말그대로
컴파일러가 컴파일을 하기 전에 처리한다는 의미입니다.
stdio.h를 보면 확장자가 .h인데요. 이 h의 뜻은
헤더파일을 의미합니다.
stdio는
Standard Input Output(표준입출력)을 줄여서
쓴 것입니다.
(stdio.h은 파일 이름이기 때문에 <,>안에서
띄어쓰기를 하면 안 됩니다.)
이 헤더파일에는 다음 챕터에서 배울 printf(),scanf()
함수 등 표준라이브러리 함수들이 정의가 되어있습니다.
따라서 #include<stdio.h>를 해석하자면
표준라이브러리 함수들이 정의된 헤더파일을
컴파일 하기전에 먼저 포함시키라는
작업을 의미합니다.
main() 함수
먼저 main()함수의 정의에 대해 알아보겠습니다.
main()함수는 다른 함수들과 달리 운영체제가
호출하는 함수입니다.
프로그램이 실행되면 운영체제에 의해 제일 먼저
호출되고 제일 나중에 종료됩니다.
즉, 프로그램에서 없어서는 안 되는 함수입니다.
c언어에서 함수의 형태는
int main (void)
출력형태 함수이름 입력형태
이렇게 구성 되어 있는데
출력형태 int는 integer의 줄임말로
정수형을 의미하고
입력형태 void는 비어있다는 것으로
입력형태가 없다는 것을 의미합니다.
출력형태에서 void는 꼭 써야 하지만
입력형태에서 void는 생략할 수 있습니다.
main()함수 밑에 { }는 함수의
시작과 끝을 의미합니다.
printf()는 표준입출력 함수로 문자, 숫자 등을
모니터에 출력하는 기능을 갖는 함수입니다.
stdio.h에 정의되어있어 printf()함수를 호출해서
정의없이 쓸 수 있습니다.
컴파일러는 전처리기에서 처리된 stdio.h 헤더파일을
통해 printf()함수의 동작을 알 수 있습니다.
printf()함수로 HelloWorld를 출력해주고
문장끝에 ;(세미콜론)을 삽입하는데요.
c언어에서 ;은 끝을 의미하는
마침표와 같은 의미입니다.
HelloWorld뒤에 있는 \n에 대해서는
다음 시간에 배워보도록 하겠습니다.
return 0;
위에서 main()함수를 설명하면서 출력형태
int로 정수형을 출력한다고 했는데요.
return 0; 은 0을 운영체제에 반환한다는 뜻입니다.
main()함수에서 0을 반환하는 이유는
프로그램이 종료시 0을 반환하면서
프로그램이 정상적으로 종료되었다는 것을
확인하기 위해서입니다.
요약
위의 코드를
지금까지 설명한 내용들로
요약해볼까요?
제 3자의 입장에서 코드를 본다고 생각하고
설명해봅시다.
우선 제일 첫 번째로 주석으로 프로그램이
설명되어 있습니다. //씨포유 라고..ㅋㅋㅋ
그리고 전처리기로 stdio.h 파일을
컴파일하기전에 포함시키고
main()함수를 호출합니다.
main()함수 내부에서는 표준입출력 함수인
printf()를 호출해서 모니터에
HelloWorld를 호출하고
운영체제에 0을 반환해 프로그램이
정상적으로 종료되었다는 것을
알립니다.
마무리
오늘은 C언어의 구조와 프로그램 실행 과정에 대해
알아봤습니다.
다음 글은 scanf()함수와 오늘 맛보기로
다뤘던
printf()함수를 배워보도록 하겠습니다.
글 봐주셔서 감사합니다!
'프로그래밍언어 > c언어' 카테고리의 다른 글
C언어 독학 #6. 연산자 (0) | 2020.05.13 |
---|---|
C언어 독학 #5. 상수 변하지 않는 데이터 (2) | 2020.05.12 |
C언어 독학 #4. 변수 데이터를 저장하자 (6) | 2020.04.22 |
C언어 독학 #3. printf(), scanf() 데이터 출력과 입력 (4) | 2020.04.21 |
C언어 독학 #1. 소개 및 개발 환경(Visual Studio) 설치 (6) | 2020.04.19 |