2014년 9월 22일 월요일

c언어 시작

일단 제가 공부하는 것을 설명하기전에 말씀드립니다.
제 신분이 군인이다보니 비주얼c++은
돌려보지는 못하지만, 그래도 문법같은것은 알고있고
제가 지금 공부중인 책에서 따오기도 합니다.
머 정확한 목적은 제가 정리하고 제가 보기위한 것임을 알려드립니다.
그리고 다름 분들은  c++을 써서 스샷으로 하는데
저는 그게아닌점을 이해를 해주세요.
(불만 이신분은 안보시면 그만이겠죠?)
그럼 시작하겠습니다.

#include<stdio.h>

int main(void)
{  
    /*
    c언어 공부 시작
    */
    // 이것은 주석입니다.
    
    printf("나인 팬의 공부시작")

    return 0;
}


위는 간단한 예문입니다.
이것으로 하나하나 분석해보겠습니다.

1)
#include<stdio.h>
이부분의 #이있는데, 이것의 이름은 전처리기 입니다.
전처리기는 다운받았던 컴파일러가 컴파일 
하기전에 먼저 처리해라 라는 의미입니다.

include<stdio.h>

include 알고있다싶이 포함하다 입니다.
그럼 무엇을 포함할까요? 보시다싶이 뒤에붙어있는 <stdio.h>을 포함한다는 뜻입니다.
<stdio.h> ←이것의 명칭은 헤더파일 이라고 불리는 것입니다.
.h 는 h라는 확장자를 가지고 있다는 것이고, stdio는 표준입출력(Standard Input Output)의 약자입니다.

결국 위의 뜻은 일단 기본적으로 쓰이고 필수적인 함수를 포함한다 라는 것입니다.

2)
int main(void) 인데,
처음으로 int는 출력형태입니다. 출력형태로는 여러가지가 있는데,
그건 다음에 쓰도록 하겠습니다.(개인적인 생각인데 어자피 int를 가장 많이쓰던데....)
여기서 보면 int main(void)는 int말고도 다른것이 올수는 있는데, main() 이것은
c언어에 있어서 필수적으로 무조건 하나는 가지고 있어야하는 함수입니다.
여기에 보시면 main의 입력형태가 void(비엇다)라는 것을 볼수가 있는데요.
결국 int main(void)를 해석해보면 입력없이 main()함수를 호출하여 출력은 int로 하라는 뜻입니다.

3)
int main(void)다음 문장을 보시면 {}이거안에 다 써있는 것을 볼수있습니다.
중괄호의 뜻은 {함수시작을 뜻하고 }함수 끝을 뜻합니다.
결국 우리는 중괄호안에 필요한것을 써 넣어야 하는 것입니다.

4)주석
    /*
    c언어 공부 시작
    */
    // 이것은 주석입니다.
말그대로 '//' 이 것은 주석이라는 것입니다.
정말 단순히 생각하면 하나의 메모입니다.
실제로 이것은 많이 쓰이게 되는 것중 하나입니다.
이유는 실제 프로그램을 작성하는데 있어서 길이는 어마어마하게 길어집니다.
그 어마어마하게 긴것을 저희가 다 기억할수가 없으니 주석을 통해 이 부분은 무엇이다 하면서 메모를 하는 것입니다.

c언어 공부시작 이라하면서 위아래에 /* */ 이 두개가 붙어있습니다.
이것은 '//'이것과 다르게 두개를 같이 써야합니다. 그런데 '//'와 다르게 /**/이것은 여러줄에 걸쳐서 주석을 쓸수있다는 장점이있습니다.

5)printf("나인 팬의 공부시작")
이부분을 간단히 파헤쳐 보겠습니다.
printf() 이것은 화면에 문자,상수,변수등을 모니터에 출력하는 기능입니다.
쉽게 생각하면,
읽는 그대로 프린트 하라는 것입니다. 무엇을?()이 소괄호 안에 있는것을 출력하라는 뜻입니다.

6)return 0;
이것은 c언어를 보면 꼭 마지막에 써있는 것입니다.
눈치 채셨겠지만 이것은 종료 끝이라는 뜻입니다.
종료에는 return 0 와 return 두종류가 있는데, 차이를 보면 뒤에 0있고차이입니다.
다른점은 return 0 은 운영체제에 0을 반환하고 main() 함수를 종료하라는 의미
return 은 운영체제에 반환할 것이 없으니 그냥 main()함수를 종료하라는 의미를 가지고 있습니다.
이때 main함수는 0이라는 반환값을 통해서 프로그램이 정상적으로 종료되었는지의 여부를
운영체제에 보내고 그것을 운영체제가 판단하는 것입니다.
솔찍히 먼뜻인지 어렵지만 생각해보면 운영체제에 반환차이입니다. 

댓글 없음:

댓글 쓰기