<프로그램 작성 단계>


1. 사람이 프로그램을 작성한다.
소스 파일 생성(*.c)
2. 사람이 c언어로 짠 내용을 컴파일러가 컴파일한다.
컴파일러는 소스 파일을 기계가 이해할 수 있게 기계어로 변환하는 컴파일이라는 것을 한다오브젝트 파일 생성(*.obj)
3. 링커가 오브젝트 파일과 표준 라이브러리 함수를 연결하여 결과물로 실행 파일을 만든다.
실행 파일 생성 (*.exe)
4. 실행 파일을 실행하면 된다.
 


<전처리기란?>


쉽게 말해먼저 처리하는 것을 의미한다. #include <stdio.h>에 보면 특수문자 '#'이 있는 것을 알 수 있다. 이 특수문자 '#'이 전처리기이다. 컴퍼일러가 수행하기 전에 먼저 처리하라는 의미이다.
#include <stdio.h>에서 전처리기는 다음과 같이 동작합니다. "전처리기 #, include하는 것좀(포함하는 것 좀 먼저 해 줘)라는 의미이다.
 

 

<헤더파일이란?>


표준 라이브러리 함수 printf(), scanf() 등의 동작을 따로 정의해 놓은 파일을 의미한다. 헤더파일의 확장자는  *.h이다.
#include <stdio.h>에서 헤더 파일은 stdio.h이다.(stdioStandard Input Output의 줄임말)
이 말을 정리하면... stdio.h라는 헤더파일에는 printf(), scanf()와 같은 함수를 정의해 놓은 라이브러리 모읍집? 이라고 생각하면 된다.
 
 

<main()함수란?>


프로그램이 실행될 때, 가장 먼저 호출되며 운영체제가 호출하고, 맨 마지막에 종료된다.
#include <stdio.h>
int main()
{
 내용
}
이렇게 대부분 구조가 되어있는데, int main()을 해석해보면, int는 출력형태이고 main은 함수 이름이다. ()void형태로 입력형태를 말한다.
정리해보면 입력형 없이(void형 이니까) main()함수를 호출해서 출력은 정수(int)으로 처리해라 라는 의미이다.
 

<세미콜론>


C언어에서 세미콜론 ';'의 의미는 문장을 끝내겠다는 의미이다. 마치 한국말에서 문장에 끝나면 마침표를 찍는 일을 하는 것과 동일하다고 생각하면 된다.
int abc = 2;        // 다음은 abc라는 변수에 2라는 상수를 넣었고, 마침표를 찍는것과 같이 세미콜론으로 마무리를 하였다. 변수와 상수는 나중에 배워보자!
 

<return?>


return의 의미는 두 가지가 있다.
1. 함수를 호출한 영역으로 값을 반환한다는 의미
2. main()함수를 종료한다는 의미
예를 들어보자.
#include <stdio.h>
int main()
{
   printf("Hello");   // printf();함수는 나중에 살펴보자. 간단히 모니터에 출력하는 함수라고 생각하자.
   return 0;        // 이 의미는 운영체제에게 0을 반환하고 main()함수를 종료하라는 의미이다.
}
 
#include <stdio.h>
int main(void)
{
   printf("Hello");
   return;      // 이 의미는 반환할 것이 없으니 main()함수를 그냥 종료하라는 의미이다.
}
 
왜 운영체제에게 0을 반환할까? 프로그램이 실행되면 운영체제는 main()함수를 맨 처음으로 호출하게 된다. 프로그램이 종료될 때도 맨 마지막으로 종료되는 함수가 main()함수이다. 마지막으로 0return해 주면서 프로그램이 정상적으로 종료되는 것인지를 알 수 있는것이다.(컴퓨터는 01...!)


posted by 경원구