언어 [C] C는 어떤 언어이고 뭘 할 수 있는 언어일까?
2007.01.25 22:58
밑에 글을 몇개 살펴보니 C나C++ 언어가 처음 배울때는
콘솔 환경으로 배우기 때문에 그걸로 뭔 게임을 만드냐 이런 생각을 한다고
적어주셨습니다.
조금 보충할 것도 있고 새로 적을 내용도 있고 하니 적어 보겠습니다.
-------------------------------------------------------------------
C언어는 가장 현대적인 언어입니다.
왜 그럴까요 ? 다른 C++,JAVA,비주얼베이직,C#,델파이,D,코볼(많이안쓰죠),포트란(안쓰죠거의) 등의
언어의 종류는 수백개입니다. 실제로 모두 문법의 차이도 있고
컴파일 방식에 차이가 있기도 합니다.
예로 자바나 C# 등은 컴파일을 하고 나면 운영체제 또는 CPU 간의 호환성을 위하여
실행은 JVM(요즘엔 이름이아마 다르다죠) 이라는 가상 머신으로 실행시키며
JVM 은 자바이고 C# 은 그에 맞는 인터프리터가 존재합니다.
그리고 C 나 C++ 언어는 컴파일과 링크 과정을 바로 하며 실행도 바로 시킬수 있습니다.
물론 커널 작성을 할 때 등은 예외가 있습니다. 이진 파일로 작성하죠.
이 C언어는 예전 유닉스를 디자인할때 쓰였던 언어로, 벨 연구소의 데니스 리치가
개발한 언어입니다.
유닉스는 같은 벨 연구소의 켄 톰슨이 만들었지만 어셈블리로 작성된 운영체제는 아무래도
코드도 매우 복잡하고 관리하기도 어려워 데니스 리치가 자신이 개발한 C 언어로 다시 개발하게 되고
그래서 나온 것이 현대에도 사용되는 유닉스 운영체제입니다.
사실상 지금 나오고 있는 언어들은 대부분 C와 비슷하게, 또는 C 와 똑같으면서도 문법만 다른 언어도
있습니다.
그것이 바로 어셈블리로 매우 효율적으로 작성된 언어이면서도 장점이 있으며
언어 자체에 유연성이 있고, 또 유닉스를 디자인했기 때문에 유명해져 호환성도 널리 알려져 있습니다.
대표적으로 언어가 표준이 생길정도로 되어 있는 프로그래밍 언어는 별로 많지 않습니다.
그런데 C 는 최초로 ANSI C 표준과 나중에는 ANSI와 ISO 의 ANSI/ISO C 가 나와 지금은 C99 표준이 최신이지요.
이제 C가 어떻게 나왔는지에 대해서는 그만두고 ㄱ-
C는 왜 처음에 콘솔일까요?
기본적으로 윈도나 X-Window 또는 애플의 맥 운영체제 등은 모두 그래픽 모드라는 특징이 있습니다.
윈도 역시 C 언어 또는 C++ 로 만들어졌고 X-Window도 C로 만들어졌습니다.
즉 이 C로는 못하는게 없습니다.
아마 이런분이 있을것입니다.
'아 난 콘솔에서라도 일단 '게임' 을 한번만들어보고싶다고! 근데 콘솔에선 어차피 아무것도못하잖아!'
라고 하시는분들,
제가 약 4~5개월 전에 약간 게임을 만든 적이 있습니다.
물론 C 이며 콘솔입니다.
http://cafe.naver.com/cafec/13705
그리고 최근에 만든 건..
http://cafe.naver.com/cafec/17201
이래도 콘솔에서 게임을 못만들까요?
물론 그래픽은 어쩔 수가 없습니다.
윈도에서 C를 프로그래밍할때 그래픽을 나타내고 싶다면 API 라이브러리를 배워야 합니다.
물론 실제 게임은 API 뿐만아니라 MFC 또는 DirectX 나 OpenGL 같은 그래픽 라이브러리들이
많이 쓰입니다.
C는 이 DirectX 와 OpenGL 과 MFC 와 API 이 모든 것을 가능케 한 언어입니다.
실제로 이 라이브러리들은 C로 작성되었고, 예외로 MFC 와 DirectX 나 OpenGL 은 C++ 로 작성되었습니다.
C++ 도 C의 상위 개념입니다.
문법에서 추가된 점이 있을 뿐 둘은 어쨌든 기본적으로는 동일한 언어입니다.
그럼, 프로그래밍 공부 하시는분들, 열심히 하시기 바랍니다.!
----------------------------------------------------------------------
P.S 저는 프로그래밍 하는 사람입니다. 하하;;..
댓글 3
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
369 | 귀국 예고입니다. ^^; [3] | Zeprod | 2007.02.11 | 307 |
368 | 작은 팁하나..전투애니메이션의 픽쳐화! [10] | 윈드 | 2007.01.31 | 796 |
367 | 액알, 한번의 노가다로 끝까지 사용하자! [5] | RPG_매냐 | 2007.01.31 | 1001 |
366 | 원형 거리 측정(세 줄 스크립트) [2] | 타이머 | 2007.01.30 | 688 |
» | [C] C는 어떤 언어이고 뭘 할 수 있는 언어일까? [3] | SeHwa | 2007.01.25 | 462 |
364 | 분수의 사용 [7] | Yggdrasil | 2007.01.24 | 460 |
363 | R2k로 퍼즐 만들기 [4] | 새벽도둑 | 2007.01.23 | 626 |
362 | 오직 RPGXP만 재생하지 못하는 MIDI파일 [5] | Les Paul | 2007.01.22 | 888 |
361 | 에에... 할일 없어서 해봤습니다... 카노 방식 이벤트 액알예제.... [2] | かの☆あおき | 2007.01.18 | 837 |
360 | [C++] template의 활용법 [1] | Zeprod | 2007.01.16 | 296 |
359 | BGM과 ME가 재생이 안될때 | View2er | 2007.01.16 | 393 |
358 | -Jindow_v0.1-체험판 [4] | -제이- | 2007.01.15 | 649 |
357 | 아이디어 하나.... [4] | 역습의 귀공자 | 2007.01.13 | 402 |
356 | 소개글 [봄이 남아있던 자리] [5] | Vermond | 2007.01.12 | 653 |
355 | 소개글 [산타클로스~수해와 수영] [5] | Vermond | 2007.01.10 | 616 |
354 | 범위 공격 : [y >= x^2] 을 이용 [7] | Spegel | 2007.01.09 | 778 |
353 | 대기 [6] | 가다없는 | 2007.01.07 | 293 |
352 | [C++] WinAPI를 이용한 GUI 프로그래밍 [2] | Zeprod | 2007.01.07 | 645 |
351 | 잠입 게임 아이디어 [5] | 아르킨 | 2007.01.07 | 557 |
350 | 데미지의 최소값, 최대값을 설정해보자! ver 1.0 [6] | 『연금술사』 | 2007.01.04 | 898 |
그 동안 쓸쓸했답니다. 좋은글도 올려주시고 반갑네요 ^^|+rp2+|2711|+rp3+|acoc_board_ideatip