술텀뱅이 블로그

C의 여러가지 단어 본문

Language/C

C의 여러가지 단어

우럭망둥이 2011. 3. 7. 12:34

C : 딱히 머라고 할수가 없네요. 아실거라 생각되고

C++ : C언어에 class라는 것과 template라는 것이 추가된 것입니다.
그외에도 몇가지 바뀐부분이 있는데, C와 거의 다르지 않습니다.
문법은 같지만, 프로그램짜는 방식은 완전히 다르죠

STL : 이제는 C++의 표준 라이브러리가 되었습니다.
그냥 C++의 라이브러리 모음이라고 생각하시면 됩니다.

API : C로 windows 응용프로그램을 짤때 사용하는 함수들을 모아놓은 것입니다.
라이브러리죠. 비쥬얼 스튜디오(프로그램)에 포함되어 있습니다.

MFC : C++로 windows 응용프로그램을 짤때 사용하는 함수들을 모아놓은 것입니다.
라이브러리죠. 비쥬얼 스튜디오(프로그램)에 포함되어 있습니다.

C에 관련된 것들은 위에 다섯개가 되겠네요. STL은 C++에 포함시켜야 하나,
분리 하도록 하겠습니다.


단순히 책차례대로 나가는게 꼭 나쁜것 만은 아닙니다.
보는 책이 좋다면 그 방법도 좋은것이지요.

좋은 책은 단순히 함수만을 설명하는 것이 아니라,
어떠한 문제를 풀어나가는 과정을 주로 하고, 그것을 풀기 위해
함수를 소개는 형태로 되어 있습니다.

제가 본 책 중에 엑셀레이티드 C++이란 책이 그렇구요.


제가 생각하는 공부하는 순서는 책을 어떤걸 보느냐에 따라 흘러간다고 생각합니다.


추천하는 순서는

C++ 기초 플러스 4판(성안당) ->
엑셀레이티드 C++ ->
STL 튜토리얼 레퍼런스 가이드 ->
API완전정복(가남사) ->
비쥬얼 C++ 6 완전정복 (영진)

이렇게 보시는걸 추천합니다. (ㅡ.ㅡ 꼭 외판원 같은)

C++ 기초 플러스를 보시면 C와 C++을 아실수가 있고요,
연습문제라던가 예제코드를 완전 마스터 하시면,
알고리즘 이라던가, 자료구조도 왠만큼은 알게 되실겁니다.

그다음 STL이란걸 배우면 좋은데요
엑셀레이티드 C++는 C++을 STL을 통해 배우게 되는 책입니다.
소스코드라던게 연습문제도 상당히 난이도가 있기 때문에 웬만큼 실력을
쌓게 되실수 있을겁니다.

그리고 어지러이 배운 STL을 체계적으로 배울수 있는
STL 튜토리얼 레퍼런스 가이드을 한번 보시면 체계가 잡힐 것이고요

그다음 윈도우즈 프로그래밍으로 넘어가기 위해서
API완전정복(가남사)과 비쥬얼 C++ 6 완전정복을 보시면 될것 같습니다.

책을 보면서 굳이 라이브러리 까지 다 외울 필요는 없습니다.
STL 같은 경우는 굳이 안외우셔도 프로그램 짜다 보면
저절로 외워질 것이며,
생각이 안날경우는 책을 찾아 보시면 되구요

API나 MFC는 워낙 방대하기 때문에 일일히 다 외울수가 없습니다.
그냥 감만 잡고 있으면 되요.

함수 철자가 어떻게 되고, 인수는 어떤식이고, 리턴값은 뭐다 하고
외우는건 정말 시간 낭비죠. 외워 지지도 않고
그냥 이럴땐 어떤 함수를 사용하면 되겠다 하는 정도만 알고 계시면 됩니다.
조금만 기억이 나도 비쥬얼 스튜디오(개발 툴입니다)에서 단축키만 누르면
함수 목록이 주르르 나와요.

깜깜하다 싶을 정도로 기억이 안나면 공부를 게을리 한것이니 다시
하고요

앞에 글을 보니 API나 MFC를 따로 공부할 필요가 없다고 써있던데
그렇지는 않다고 생각합니다.
따로 공부해야 합니다.

API나 MFC가 단순히 함수/객체들의 모임은 아닙니다.

API를 배워야 windows 프로그래밍이 어떤패턴으로 짜여 있는지 알수 있습니다.
단순히 함수를 공부하는 것이 아니에요. 또 함수를 따로 공부할 필요도 없고요
(그렇기 때문에 그 뚜꺼운 책을 다 볼 필요는 없습니다.)

C를 알고, API 함수들을 알고 있다고 windows 프로그램을 짤수는 없습니다.
(그 말은 C의 문법만 알고, 노드리스트를 구현한다는 말과도 같군요.
또한 모든 함수들을 안다고 해서 짤수 있는 것도 아니고요)

제 말만 듣지 마시고, 다른 글들도 많이 보세요.
하지만 저도 똑같은 고민을 했던지라, 저는 이렇게 해왔다는 걸 말씀 드립니다.

다음은 추가 질문에 대한 답변 입니다.



* 아직 라이브러리에 대한 개념이 안잡혀 있습니다. 쉽게 설명 좀...^^; 표준라이브러리=라이브러리인지도 모르겠구요.

대책없이 MSDN으로 검색하니 무수히 많이 나오는 문서들에 포기...ㅜ_ㅜ

=> 라이브러리는 함수들의 집합니다. 표준 라이브러리와 라이브러리는 같은게 아니고요

라이브러리라는 전체집합 안에, 표준 라이브러리와 비표준 라이브러리(이런 용어
는 없는것 같아요)가 있습니다.

MSDN에는 C, C++, API, MFC 라이브러리에 관한 모든 내용이 포함되어 있기 때문에
초보자는 사용하기가 힘듭니다.

이제 막 알파벳 외운 애한테 영어 사전 찾기 가르치는거랑 똑같죠



* MFC,STL?대충 이런거였던거 같은데....이것에 라이브러리라는 말이 붙어있는거 같더라구요.

이녀석들이 엄청 중요하다고 대충 들어서 알고는 있는데 대체 이것들이 라이브러리라 함은?

=> MFC, STL 이런것들은 모두 라이브러리가 맞습니다.
또 STL은 C++의 표준 라이브러리가 됐구요

STL은 C++에서 자료구조라던지, 알고리즘 같은 자주 사용하는 함수들의
집합(라이브러리)입니다.

MFC는 windows 프로그래밍을 위한 함수들의 집합입니다.

그리고 단순히 함수들의 집합이라고 했는데, 정확히는 함수와 객체들의 집합
입니다.



* 라이브러리는 컴파일러마다 조금씩 틀린가요?

=> 그렇기도 하고, 아니기도 합니다.

라이브러리가 함수/객체들의 집합인 만큼 만든 사람이 있고,

그 내용이 다를수가 있습니다.

때문에 표준안이 필요한 거고, 그래서 표준 라이브러리 라는 용어가 생기게

된것입니다.



* 라이브러리 쪽 따로 공부할 필요없이 찾아서 쓴다고 가정하면 어떻게 무슨 방법으로 찾는건지...

=> MSDN은 다 영어구요

영어가 힘드시다면 번역된 레퍼런스 책들이 있습니다.

STL, MFC, API 각각 함수들의 인수와 리턴값, 어떤 행동들을 하는지

사전처럼 쭉 나와 있습니다.

그래도 대충 감을 잡고 있어야 겠죠.

STL에서 URL(인터넷 주소) 찾는 함수를 찾는 것 같은 황당한 행동은
안하도록요

또, 이미 있는 함수인데, 이미 있다는 함수인줄 모르고, 힘들게 만들어
쓰면 효율이 떨어 지겠지요

'Language > C' 카테고리의 다른 글

ansi C 에 정의된 함수 목록  (1) 2011.03.07
strlen  (2) 2011.03.07
CallBack 함수란?  (3) 2011.03.07
배열 선언 오류  (2) 2011.03.07
after Normal Block error  (2) 2011.03.07
Comments