티스토리 뷰

반응형

* 앞으로 설명되는 C++은 앞서 이야기 한것처럼, Visual C++ 기준이 아니라 Linux의 GNU C++ (g++) 위주로 설명한다고 

  했습니다.

  

  이유인즉, Visual C++의 IDE (개발툴 환경) 때문에 직관적인 설명이 가능 하겠지만, 문제는 호환성 때문 입니다.

  즉, GNU C++ 기반으로 설명 하면, 나중에 Linux O/S가 되었든 Windows O/S가 되었든, 전통적인 UNIX System이 되었든 

  간에 100%까지는 아니더라도 소스코드의 큰 변경 없이 Compile이 가능 하기 때문 입니다. 


  물론 이 방법이 훨씬 불편하게 느껴지게 될겁니다. Visual C++은 프로젝트 생성 후 F7만 누루면 바로 컴파일 되고 

  결과 확인이 가능 하겠지만, GNU 기반에서 하면 Makefile 이란 넘을 사용하는 방법도 알아야 하기 때문 입니다. 


  너무 어려워 하지 말고 지금은 "그냥 그런게 있다" 라는 정도로 이해 하면 됩니다.   또한 C++에 대한 설명과 예제는 

  일반적인 구구단 같은 수준으로 하지는 않을 겁니다.  주로 현업의 시스템 개발자들이 고민하고, 개발하는 내용들 

  위주로 설명 하며, 개발론 이나, 기법들 위주로 설명 될 예정 입니다.


* C++에 이야기 

  C++은 C에서 발전한 파생형 언어라는 표현이 맞지 않을까 합니다. 통상 C++을 C에서 발전 했다고 합니다만,

  절반만 맞다고 해야 할런지 모르겠습니다.


  사실 C++은 C언어가 개발되자마자 시작된 프로젝트 였기 때문 입니다. 즉 C언어가 정착되기 전부터 C언어를 

  개발하면서 도출된 문제나 Issue사항들이 정립되면서 시작 되었다고 볼수 있기 때문 입니다.


1.1 C++이 뭐지?

  * C++은 C언에서 OOP (Object Oriented Programing) 개념이 도입 되면서, C++ 하면 OOP라고 알게 되었죠.

     OOP (Object Oriented Programing) 대한 개념은 흔하디 흔한 내용이라, 여기서는 다루지 않습니다.

     혹시 모르시는 분들은 검색신공을 발휘 하시면 쉽게 찾게 될겁니다.

  

  * C++은 구조화된 Programming 언어인 C언어를 기반으로 시작 되었습니다.  그래서 C++ 란 명칭이 되었기도 합니다.  그러므로            C++은 C언어에서 사용되는 문자 사용법이나,  Reference library를 모두 사용 할수 있습니다. 

    대표적인 것이 C & C++ 하면 떠오르는 printf() function이 대표적이라고 할수 있습니다.


1.2 C++ Program의 시작

    이제 아래의 예제를 살펴 보기로 합니다. 아래 예제는 C언어와 C++에서 Programming시 시작점 이라고 할수 있습니다.
#include "stdlib.h"
#include "stdio.h"

int main(int argc, char *argv )
{
  printf("This main function Call.\n");
  return 0;
}

* "#include"는 선행처리기 명령중의 하나 입니다. 즉 Compiler가 "#"이 붙은 알파벳을 찾게 되면 선행처리기로 인식하여,

   해당 명령을 수행 한다는 의미 입니다. "#include"는 Compiler로 하여금 지정된 "stdlib.h" File과 "stdio.h" File을 현재의 Source Code앞에

   병합(merge) 하게 됩니다. 


* int main(int argc, char *argv )는 main 함수의 실제 구현되는 내용 입니다. main함수는 Program내에 단 1개만 존재 가능 합니다.

  이유는 Program이 실행되면, O/S에서는 제일 첫번째로 main함수를 찾아서 호출 하기 때문 입니다.  만약 1개 이상이라면, O/S에서는 어떤 

  main 함수를 실행 해야 될지 모르기 때문이죠.

 

  int argc, char *argv 변수는 함수의 인자값 이라고 합니다. main 함수에서는 O/S가 main함수를 호출 하면서 선언된 변수에 해당값을 

  전달해 준다는 의미 입니다. 

  * int   argc : Program 실행 시 전달 받은 Option 인자 갯수
  * char *argv : Program 실행 시 전달 받은 Option 인자 Value 

예를 들어 Program명이 example 이라고 한다면,  example -d 1 이렇게 실행 했을때,  argc 변수에는 옵션 갯수, argv에는 -d와 1이 

전달 됩니다.


실제 main 함수의 종류는 몇가지가 더 있습니다만, 자주 사용되는 main으로 설명 했습니다만 설명이 잘되었는지 모르겠습니다.

이글을 쓰면서도 벌써 3번째 반복해서 작성 중 입니다. ( Web 이다 보니까요.. ㅠㅠ )

  

  


 

  

반응형

'개발자 이야기 > 초보 개발자를 위한 C++' 카테고리의 다른 글

1.2 선행처리기 #include에 대하여  (0) 2018.09.28
C++ 번외 이야기 #1  (0) 2018.09.23
1. C++ 시작  (0) 2018.09.20
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함