컴퓨터/C언어 쉽게 배워보자

C언어 강좌 4. Hello World 프로그램에 대하여

sdk 2016. 1. 30. 23:33

안녕하세요 sdk입니다.


저번엔 HelloWrold를 콘솔창에 띄어주는 프로그램을 작성했습니다.


작성하실때 어떤 생각을 하셧나요? 

1번: 피...알...아이..엔..티..에프... 하면서 작성 

2.아 이부분이 화면에 나오는거구나 ! 


1번,2번 둘다 여도 상관 없습니다. 처음 공부하는거니까요

하지만 앞으로는 2번째 마음가짐을 가져주시면 감사하겠습니다! 

제가 알려주는것, 예제 코드를 직접 한번씩 만져보면서 가지고 놀아보세요

그러면서 공부하는것입니다. Hello World를 Bye World 로 바꿔보기도 하고, 안녕 세상! 하고 한국어로 바꿔보기도 하는겁니다.


자 그럼 본론으로 들어가보죠

우선 우리가 작성했던 Hello World를 들여다보기 전에 "함수(메서드)" 라는것을 알려줄까 합니다.

함수, 기억하시나요? 

수학에서의 함수요


[수식 1 - 1] 일차함수

일단 C언어 함수에 연결해서 말을 해보도록 하겠습니다.

x 에 해당하는건 입력 이라고 합니다.

f(x)값 즉 계산 한 값을 출력 이라고 합니다.

C언어에서도 수학의 함수랑 비슷한 역할을 합니다.

조금 다른점도 있죠. 

아 , 수학에서의 함수를 모른다구요? 음... 몰라도 상관 없습니다!

겁먹지말고 차근차근 배워보자구요.


들어가기 전에 용어 몇개를 먼저 정의하도록 하겠습니다.


  • 함수의 정의  -  만들어진 함수, 실행이 가능한 함수를 말합니다

  • 함수의 호출  -  함수 실행을 명령

  • 인자의 전달  -  함수에서 입력값이 해당하는 부분에 입력하는 입력값


C언어는 , 그리고 대부분의 프로그램 언어들이 " 함수 " 를 기본 단위로 하고 있습니다. 

자, 함수란 무엇일까요.

어려워 하지 말자구요 사실 우리는 Hello World 프로그램을 만들면서 

함수를 써보고 만들기도 했습니다.

뭔 소리냐구요?


이제 코드를 들여다 봅시다.

 
#include <stdio.h>
 
 
int main(void)
{
	printf("HelloWorld! \n");
	return 0;
}
 

[ 코드 1 - 1 ] Hello World!

 자 봅시다 , 과연 어떤게 함수일까요.


우리는 저 Hello World 를 만들면서 main() 이라는 함수를 만들어 보았고, printf 함수라는 것을 사용해 보았습니다.

어떻게 만들었냐구요? 자 풀어봅시다.


 반환 자료형

 이름

 전달 인자 ( 파라미터 )

int 

 main

 (void)


  {


    함수의 몸체


  }


반환 자료형 - 출력에 해당하는 함수의 반환 형 (return type ) 을 결정하는 상태

이름         - 함수의 이름

전달 인자   - 파라미터라고도 불리고 , 입력 자료형을 결정하는것.


이렇게 우리는 main 이라는 함수를 만들었었습니다.

음.. 부족합니다!

그냥 말하지말고 좀 더 자세하게 말해보자구요!

이렇게 우리는 반환형이 int 이고 입력 형태가 void 인 main 이라는 함수를 만들었습니다.

와아 축하드립니다. 함수 만드는 방법을 알게 되셧군요.


( 참고로 main 이라는 함수가 없다면 프로그램이 동작하지 않는데요 , 그 이유는 main 이라는 함수가 C 프로그램에서 시작점이 되는 부분이기 때문입니다 )



함수 내부(함수의 몸체 ) 에선 

한 문장마다 세미콜론 ; 을 붙여줘야 합니다!


이 세미콜론은 줄의 끝 을 알려주는 문자입니다.

즉 만약 이 세미콜론을 입력하지 않고 그냥 써내려가면 하나의 코드로 인식해버립니다.


우리가 작성한 함수의 몸체에 있는

printf ( "HelloWorld!\n");

return 0 ; 

뒤에 붙어있는 세미콜론 문자는 문장 하나의 끝을 알려주는 역할을 합니다.

만약 세미콜론이 없다면 없다면 비쥬얼 스튜디오에서 친절하게도 세미콜론을 붙여달라고 말할겁니다.

따라서 세미콜론 붙이는 습관을 들이도록 하고

기억합시다

세미콜론은 코드 라인의 끝을 말해준다.


자 , 이제 제가 말했던 사용했다고 말했던 처음보는 printf 함수에 대하여 이야기 해봅시다.


함수의 몸체에는 이 코드가 들어와있습니다.

printf("HelloWorld! \n");

이게 뭘까요?



자 , 자 우리 한번 유추해 봅시다.

익숙한 친구가 저기 안에 들어있네요?

"HelloWorld!\n"

실행할때마다 본 문자일겁니다.

우리는 함수의 호출을 통해서 콘솔창에 문자를 띄어주는 것이였습니다.

즉 , 우리는 printf 라는 함수를 호출하면서 "HelloWorld!\n" 이라는 값을 전달해주는것 이였습니다!

결과로, 화면에 HelloWorld! 를 보여주죠

( \n 은 개행입니다 = 엔터 )

조금이라도 날카로운 생각을 하신다면 우리가 만들지도 않은 함수를 어디서 가져온걸까요?

하는 질문을 하셧을수도 있습니다!

자 이야기나온김에 말해드리도록 하죠


printf 함수는 전달받은 인자값을 화면에 출력해주는 역할을 합니다. 이러한 함수들은 만들지 않아도 호출이 가능한 기본적으로 제공되는 함수입니다.


이런식으로 printf 함수처럼 기본적으로 제공되어지는 함수를 가르켜 " 표준 함수 " 라고 하고

이친구들이 모여있는걸 가리켜 "표준 라이브러리" 라고 합니다.

나중에 알겠지만 C는 의외로 많은 함수들을 제공합니다.  활용하면 이득이 될수도, 독이 될수도 있으니 잘 알아보고 사용하는것이 바람직합니다.



아아, 제가 설명 안드린게 있다구요? 네 그렇습니다.

#include <stdio.h> 

이부분이죠.

가장 위에있으면서 왜 먼저 설명 안했냐 할수 있습니다.

설명해드리도록 하겠습니다. 하지만 , 최대한 단순하게 설명하고 추후 더 상세히 설명하도록 하겠습니다

#include <stdio.h>

한국어로 바꿔봅시다.

#포함  <stdio.h>

즉 "stdio.h" 라는 파일을 포함한다는 뜻을 가지고 있습니다.

.h 파일은 헤더파일 이라고 합니다.

우리가 알아야 할부분은 이정도 까지입니다.

stdio.h 안에는 printf 함수를 포함한 각종 표준함수들을 가지고 있습니다.

따라서 printf 함수를 쓰고 싶으면 #include <stdio.h> 를 위에 선언해 주셔야 합니다.

해더파일을 포함할때는 

소스파일의 맨 앞부분 main 함수 위에 선언해야 합니다.( 그냥 파일제일 위에다가 넣어주세요 간단해집니다. )

더 상세한 내용은 나중에 강좌를 해나가면서 이해하자구요.


우리가 아까 쓴 코드에서 있던 return 0; 의

return 에 대하여 이야기 해보고자 합니다.

간단하게 말하도록 할게요

return (반환값)

즉 아까 정의한 함수의 반환 형태에 의하여 그 반환값을 호출한곳에다가 가져다 놓습니다. ( 나중에 좀더 다뤄보자구요 )

그런데 이게 return ; 으로 반환값이 없게 만들수도 있습니다 ( 반환값이 void ) 형일경우 그냥 함수의 종료! 를 명령하는 문장이 됩니다.




자, 자 이해하셧나요? 이번 포스팅에서 할 이야기는 다 했습니다

아직 모르는것이 꾀 있을겁니다

int가 뭐에요?

void 가 뭐에요? 등등 , 이런건 나중에 자세하게 말해드리도록 하겠습니다.







여러분들의 댓글은 큰 힘이됩니다 :)