Search

'C언어'에 해당되는 글 2건

  1. 2016.07.11 warning: array subscript has type ‘char’
  2. 2007.08.28 C Programming 시작하기 1 - 소개

char buffer[30];

char len;

... (buffer, len에 값 설정)

buffer[len] = '\0';

 

와 같은 코드로 작성할 경우 len의 값이 음수가 될 수 있기 때문에 경고 문구가 발생

len을 unsigned형으로 해야 안나타날듯 하다.

 

C Programming 시작하기 1 - 소개

Computer Language/C 2007. 8. 28. 23:40 Posted by AstinLen

1. C는?

 벨 연구소에서 1971년경부터 리치(D.M.Ritchie) 등에 의해서 설계 개발된 시스템 기술용의 프로그래밍 언어입니다. UNIX 오퍼레이팅 시스템의 기술에 사용할 것을 목적으로 설계한 언어로 UNIX OS의 대부분이 이 언어로 개발되었습니다. 컴퓨터의 구조에 밀착한 기초 기술이 가능한 것과 간결한 표기가 될 수 있는 것 등을 특징으로 하고 있습니다.

 시스템 기술용 언어의 경우에는 기억장치의 주소(address) 등과 같은 하드웨어 자원까지 기술의 대상으로 할 것을 요구하고 있는데, C 언어에서는 이러한 수준의 개념을 데이터 형이나 함수 등의 고수준 언어의 개념에 잘 대응하고 있습니다. 따라서 언어의 성격상 일반적인 범용의 언어와 거의 다를 바가 없습니다. 프로그램을 다른 종류의 컴퓨터에 이식하는 것도 용이하며, 범용 언어이기는 하지만 강력하고 고수준의 언어로 하는 것을 목표로 하고 있지 않습니다.

 C 언어는 프로그램 오류를 쉽게 발견하기 위한 기능은 부족하지만, 고수준 언어에서 자주 볼 수 있는 기술상의 제약이 적기 때문에 오히려 프로그래밍하기 쉬운 편리한 언어로 평가되며, 프로그램을 간결하게 쓰기 위하여 많은 연구를 한 언어입니다.

 C 언어의 기본 특징은 ASCII코드 체계로 영문 소문자 집합을 바탕으로 하고 있으며, 함수(function)의 정의문들의 집합으로 구성되어 있고, 분할 컴파일을 할 수 있어 함수 정의부 밖의 외부 변수를 정의함으로써 컴파일 단위가 다른 함수의 외부 변수를 참조할 수 있게 되어 있습니다. 또한 프로그램의 함수 기능에는 FORTRAN의 SUBROUTINE 기능과 FUNCTION 기능을 가지고 있으며, 함수 호출시 매개변수의 값만 넘겨주는 호출 방식을 따르고 있고, 자료의 주소를 자유롭게 조작할 수 있는 점들입니다.


2. C의 특징

  • 이식성
     C 언어는 다른 프로그램 언어보다 높은 호환성을 가지고 있고 C언어의 표준함수로만 작성된 프로그램은 어떤 기종의 컴퓨터에서도 정상적으로 컴파일 되고 실행될 수 있습니다. 예를 들면 소형 컴퓨터에서 작성된 프로그램이 대형 컴퓨터에서도 완벽하게 사용될 수 있는 것 입니다.

  • 다양성
     C 언어는 과학 계산용 프로그램뿐만 아니라 FA(공장 자동화), OA(사무 자동화), GUI(Graphics User Interface), 시스템 프로그램(system pr ogram), 응용 프로그램(application program) 등과 같이 컴퓨터의 모든 분야에서 사용할 수 있도록 설계된 효율적인 프로그램 언어입니다.

  • 유연성
     C 언어의 가장 큰 특징중의 하나는 소프트웨어의 부품화를 실현 할 수 있다는 것입니다. 소프트웨어의 부품화란 새로운 프로그램을 개발하기 위해 이미 작성된 프로그램 모듈들을 그대로 사용하는 곳을 의미합니다.
     C 언어를 부품과 같이 사용할 수 있는 대표적인 응용 소프트웨어로는 클리퍼, 폭스프로, 윈도우, 오토캐드 등이 있습니다. 또 다른 의미로는 기계어(어셈블리)에 준하면서 고급프로그래밍 언어로 집적된 표현을 할 수 있다는 것입니다.
     즉 저급 언어이면서 고급 언어의 성격을 가진 것을 말합니다.

  • 혼합성
     C 언어는 다른 프로그램 언어와 함께 혼합되어 사용될 수 있으며, 혼합 프로그램을 개발하는 프로그램의 혼합성을 극대화시키기는데 사용됩니다.
     C 언어와 함께 가장 많이 사용되는 프로그램 언어는 어셈블리이며 패키지 언어에는 클리퍼 등이 있습니다.

  • UNIX 시스템
     C 언어와 UNIX가 거의 동시에 개발되었으며 UNIX 시스템 자체가 C 언어로 대부분 작성되었기 때문에 최근에 UNIX와 같은 운영체제가 급속히 성장하고 있습니다. UNIX 시스템은 C 언어로 프로그램을 작성하고, 실행하는데 가장 적합한 환경으로 1980년대 이후 수퍼 미니 컴퓨터(super mini computer), 미니 컴퓨터(mini compiuter), 16비트 퍼스널 컴퓨터의 공통 운용 체제로 애용되고 있습니다. 널리 애용되고 있는 이유로 파일의 사용이 쉽고, 입출력(I/O)과 파일의 교체가 간단하며, 명령어(command)와 명령어가 파이프라인(pipeline)으로 연결되고, AT & T사와 정식 계약을 맺고 있어 원시 코드(source code)가 제공되기 때문입니다.
     UNIX 시스템의 C 컴파일러(compiler)는 'cc'로 UNIX 시스템 구조에서 가장자리에 있습니다. 'cc'는 C프리프로세서(preprocessor), 2 패스 컴파 일러(2-pass compiler), 어셈블러(assemler) 및 로더(loader:link,editor), 그리고 각각의 저수준 프로그램(low-level program)들을 호출합니다.
     C 프로그램의 개발은 UNIX 상에서 하는 것이 좋다라고 말하는데 그 이유는 UNIX사의 개발 툴 집단(development tools group)이 풍부하기 때문이다. 예를 들어 대표적인 툴들을 보면 프로그램 개발시에 유용한 명령어들(commands)과 디버거(debugger), yacc, lex, make, sccs 등이 있습니다.
     UNIX시스템에서 C가 특별한 언어이지만 그렇다고 해서 C 언어에만 국한되지 않는다는 것을 미리 생각해 두시기 바랍니다.