main() 함수
C 언어는 프로그래밍 언어입니다.
말 그대로 언어 이기 때문에 정해진 문법이 있어요. 규칙이 있다는 거죠.
그런데 그 문법이란 것이 사람 말처럼 복잡하지는 않아요.
가장 쉬운 예제를 기반으로 시작해 볼게요.
#include <stdio.h>
void main(void)
{
int a,b,c;
a = 1;
b = 2;
c = a+b;
printf("%d+%d=%d\n",a,b,c);
}
c 언어 문법에 잘 맞는 코드입니다.
a라는 변수에 1을 넣고
b라는 변수에 2를 넣은 후
c 라는 변수에 a와 b를 더한 값을 넣고
그 결과 값을 출력해서 보는 프로그램입니다.
실행을 해보면,
1+2=3
이런 결과가 화면에 출력됩니다.
직접 실행해 보고 싶으신 분들은 아래 링크로 가서 해보세요.
Language를 c로 선택하고, 코드를 넣은 후 Run it 을 누르면 그 아래 결과 값이 나옵니다.
( 와... 제가 처음 공부할 때는 볼랜드 C 이런 거 깔고.. 아니면 Visual c 깔고 그랬는데 참 편리하네요. )
void main (void)라는 것이 main 함수입니다.
main 함수라는 것은 모든 프로그램의 시작점입니다.
아무리 복잡한 프로그램이라 하더라도 main 에서부터 시작된다는 것이지요.
앞 뒤로 붙어있는 void에 대해서는 함수의 구조에서 다시 다루겠습니다.
지금은 모든 프로그램이 main 함수에서 시작된다는 것만 알면 됩니다.
또 앞으로 당분간 예제 코드들은 위와 같이 main 함수 내에서 모두 실행됩니다.
그럼 메인 함수의 중요한 문법을 설명하겠습니다.
#include <stdio.h>
#include 는 다음에 나올 < **.h > 파일을 본 프로그램에 포함하라는 뜻입니다.
해석하자면 stdio.h 파일을 본 프로그램에 포함시키라는 뜻이 됩니다.
stdio.h 는 본 프로그램에서 printf 함수를 사용하기 위해 추가한 라이브러리입니다.
void main(void)
{
어쩌고 저쩌고;
}
main 함수를 포함해 모든 함수들은 위와 같이 중괄호로 감싸 져야 합니다.
또한 어쩌고 저쩌고 뒤에 붙인 ';' 세미 콜론은 하나의 명령이 끝났음을 의미합니다.
C 언어에서는 ; 가 명령의 끝을 나타내지 줄 바꿈은 의미가 없습니다.
예를 들어 다음에 나오는 코드는 맨 처음 예시한 main 함수와 같은 코드입니다.
void main(void){int a;int b;
int c; a=1; b=2;
c=a+b;printf("%d+%d=%d\n",a,b,c);}
줄 바꿈, 띄어쓰기는 아무런 의미가 없습니다.
다만, 이 코드를 보는 입장에서 해석이 힘들다는 문제가 있을 뿐입니다.
다른 말로 코드의 가독성이 떨어진다는 것입니다.
코드는 다른 사람들이 봤을 때 쉽게 해석이 되도록 가독성 높게 코딩하는 것도 매우 중요합니다.
그래서 일정한 규칙도 있어요. ( 잘 따르지는 않지만..)
그러한 규칙은 가독성을 높이기 위함도 있지만, 에러를 줄이는 방법으로도 중요합니다.
이러한 규칙들은 앞으로 글을 올리면서 하나씩 나올 때마다 알려 드리겠습니다.
오늘 나온 내용 중에는 아래 두 가지만 기억하세요.
- 하나의 명령이 끝나는 세미콜론 ; 이후에는 줄 바꿈을 하라
- 중괄호 안의 코드는 우측으로 1 탭만큼 밀어넣기 하라.
프로그램은 이런 함수들로 구성되어 있어요.
함수란 특정 기능을 하는 모듈이라고 생각하면 됩니다.
수학에서 함수 f(x)와 같은 개념이에요.
그 함수에 어떤 값을 넣으면, 그 함수의 기능에 따라 값이 처리되고 결과 값이 나오는 식이죠.
이때 그 값을 넣는 것이 함수 이름 뒤 ( ) 괄호 안에 들어 있는 것 들이고요,
결과로 나오는 값의 타입이 함수의 이름 앞에 붙는 것입니다.
void main(void)
에서 앞의 void는 main 함수가 끝났을 때 결과 값을 반환하지 않는다는 뜻이고요,
뒤 괄호 안의 void 는 실행할 때 어떤 인자 값을 받지도 않는다는 뜻입니다.
만약 아래와 같이 선언되었다면,
int main( int a, int b)
main 앞의 int 는 이 main 함수가 종료되었을 때 반환할 값이 4byte 형태의 정수임을 말합니다.
뒤에 붙은 int a, int b 는 이 main 함수가 실행될 때 4바이트 정수 두 개를 받아들인다는 뜻입니다.
main 함수는 프로그램의 시작점이기 때문에 종료되었을 때 호출한 프로그램은 바로 운영체제 또는 이 프로그램을 실행시킨 다른 프로그램이 됩니다.
반환하는 값이 있을 경우 프로그램의 마지막에 다음과 같은 코드를 추가해 주어야 합니다.
return 0;
return 뒤에 오는 값이 반환해 주는 값이 됩니다.
main 함수는 운영체제나 이 프로그램을 실행시킨 다른 프로그램에게 반환하게 되는데요.
그것은 이 프로그램이 정상 종료되었는지 여부를 알려주기 위함이 가장 큰 목적입니다.
만약 이 프로그램에 오류가 있어서 중간에 강제로 종료되어 버렸다면, 마지막 코드인 return 0 을 실행하지 못했겠지요.
그러면 운영체제에서는 그 문제를 인식할 수 있게 되는 겁니다.
또는 무엇인가 오류가 있어서 종료 시 그 문제점을 운영체제에게 알려줘야 할 때 return 1; 과 같이 다른 값을 반환시키기도 해요.
다음 시간에는 int 가 무엇인지 알아봐야 겠군요.
'코딩을 합시다 > 최대한 쉽게 설명한 C 언어' 카테고리의 다른 글
초등학생도 이해하는 C 언어 - 복합 대입 연산자 (0) | 2020.05.07 |
---|---|
초등학생도 이해하는 C 언어 - 산술 연산자 (0) | 2020.05.07 |
초등학생도 이해하는 C 언어 - 대입 연산자 (0) | 2020.05.01 |
초등학생도 이해하는 C 언어 - 변수와 자료형 (0) | 2020.04.30 |
C 언어에 대해서. (1) | 2020.04.30 |
댓글