c언어 강좌2.헬로우월드 + 프로그램 실행과정

Posted by 슈퍼너드 리보
2020. 10. 8. 18:36 프로그래밍/C
반응형

오늘은 c언어의 기본 구조에 대해 알아보겠습니다. 모든 언어는 프로그램을 처음 짜 볼 때 전통적인 프로그램이 있습니다. 바로 Hello World!입니다. Hello World! 프로그램을 짜보고 C언어의 기본 구조는 어떻게 되어 있는지 알아보겠습니다. 또한 컴파일러가 무엇인지 알아보겠습니다.

기본 구조 

Dev C++을 키고, 다음 코드를 입력해봅시다. 헬로우월드를 출력하는 코드입니다. 코드를 작성하고 1_HelloWorld.c라고 저장해줍시다.

 #include <stdio.h>

 int main( void )

 {

     printf("Hello World! \n");

     return 0;

 }

코드에다가 뭘 썼는지 한줄 한줄씩 봐보겠습니다.

첫째줄 #include <stdio.h>는 뭘까요? 먼저 #include는 C언어의 여러 전처리기 지시자 중의 하나로 (※전처리기 지시자에는 #include, #define, #pragma 등이 있다) 외부 파일을 읽어서 해당 소스파일에 포함시키고자 할 때 사용합니다. 1_Hello.World 파일에 'stdio.h를 포함시켜라'라는 뜻입니다. stdio.h는 standard(※std로 줄여 쓴다) + "input & output" (※io로 줄여 쓴다)+ 헤더(h)를 합친 말로 번역하자면 표준입출력이 들어있는 헤더라는 뜻이 된다. 즉 이 코드를 씀으로 여러분들은 입출력을 할 수 있게 합니다. 


둘째줄은 공백으로 사용자를 위해 코드의 줄 사이를 뛰울 수 있습니다. 컴퓨터는 인식 못합니다. 


셋째줄은 int main(void)라고 적혀있습니다. int는 정수형이라는 자료형입니다. main(void) 이것은 main 함수라는것으로 컴퓨터 프로그램에 여기서부터 코드가 너희들이 실행시킬 코드가 있다고 알려주는 역할을 한다. 함수란 수학의 함수에서 따왔지만 C언어에서 함수는 좀 더 확장된 개념입니다. 쉽게 말해  C언어의  모든 프로그램은 함수가 최소한 하나씩은 들어가야 합니다. 함수는 포트란 같은 옛날 언어의 프로시져나 서브루틴과 그 위상이 같습니다.


일곱째줄 printf()는 main() 같은 함수로 Hello Worl!를 출력해주는 기능을 합니다, \n은 개행문자, 뒤에 ;은 세미콜론이라 읽고 하나의 명령어 문장이 끝남을 의미합니다. 


아홉째줄 return 0는 프로그램에 0을 반환시켜줍니다. 


프로그램 실행과정

이렇게 작성한 코드를 실행해봅시다. 간단합니다. dev c++ 상단에 실행 -> 컴파일 후 실행 버튼을 누르면 됩니다.

사실 이렇게 실행하는건 dev c++ 자체의 컴파일 기능 덕분에 가능한것입니다. 눈에 보이지 않는 작업들을 dev c++이 해주게 해주는겁니다. dev c++ 에디터가 없다면 프로그램 실행은 우리가 일일이 해줘야 합니다. 그렇다면 어떻게 하는걸까요? 이것을 아는건 프로그래밍 공부에 있어 유의미하다. 힘들더라도 잘 숙지합시다. 


우선 (.C) 확장자명을 가진 소스파일을 만든다. 이것은 우리가 앞서 했습니다. 이러한 소스파일은 고급언어로 작성 되었습니다. 컴퓨터는 0과 1로 이뤄진 기계어로 밖에 알아듣지 못한다. 때문에 컴퓨터는 소스파일을 기계어로 변환하는 과정을 거치는데 이것을 이것을 컴파일이라 합니다. 


그리고 컴파일은 컴파일러 프로그램 의해서 수행되는데 컴파일러 프로그램은 소스파일을 목적파일에다가 기계어로 변환을 시킨다. 이 때 만들어진 목적파일은(.obj)확장자를 붙여진다. 


하지만 아직 프로그램을 실행 할 수 없습니다. 링크라는 작업을 또 겨쳐야 되는데 링크란 목적파일과 라이브러리를 연결하고, 시동코드를 넣어주는것을 말한다. 링커라는 프로그램으로 이를 수행하고, 실행파일(.exe)을 최종적으로 만들게 됩니다. 



반응형