c 언어 예제

1978년 브라이언 케르니건과 데니스 리치가 C 프로그래밍 언어의 초판을 출판했다. [1] C 프로그래머에게 « K&R »로 알려진 이 책은 수년 동안 비공식적인 언어 사양으로 사용되었습니다. 설명하는 C 버전을 일반적으로 K&R C라고 합니다. 이 책의 두 번째 판[13]은 아래에 설명된 이후ANSI C 표준을 다룹니다. Kernighan과 Ritchie는 C 프로그래밍 언어의 소개에서 말합니다: « C는 다른 언어와 마찬가지로 결점이 있습니다. 일부 연산자는 잘못된 우선 순위를 가지고 있습니다. 구문의 일부가 더 좋을 수 있습니다. » [21] C 표준은 이러한 변경 사항이 기존 소프트웨어에 미치는 영향 때문에 이러한 결점을 많이 수정하려고 시도하지 않았습니다. C의 일반적인 산술 변환을 사용하면 효율적인 코드를 생성할 수 있지만 예기치 않은 결과가 발생할 수 있습니다. 예를 들어 서명된 수와 서명되지 않은 동일한 너비의 정수를 비교하려면 서명된 값을 서명되지 않은 값으로 변환해야 합니다. 서명된 값이 음수인 경우 예기치 않은 결과가 발생할 수 있습니다.

K&R 의 첫 번째 판에 나타난 « 안녕하세요, 세계 »의 예는 프로그래밍 언어에 관계없이 대부분의 프로그래밍 교과서에서 입문 프로그램의 모델이되었습니다. 이 프로그램은 일반적으로 터미널 또는 화면 디스플레이인 표준 출력에 « 안녕하세요, 세계 »를 인쇄합니다. C는 연산자 = (평등을 표현하기 위해 수학에서 사용)을 사용하여 포트란과 PL / I의 선례에 따라 할당을 나타내지만 ALGOL 및 그 파생 상품과는 다릅니다. C는 연산자 ==를 사용하여 같음을 테스트합니다. 이 두 연산자 간의 유사성(할당 및 같음)은 다른 연산자 대신 실수로 하나를 사용할 수 있으며, 대부분의 경우 실수는 오류 메시지를 생성하지 않습니다(일부 컴파일러가 경고를 생성하더라도). 예를 들어 조건부 식 if(a==b+1)는 실수로 if(a=b+1)로 쓰여지며, 이는 할당 후 0이 아닌 경우 true로 평가됩니다. [24] C 연산자 우선 순위가 항상 직관적인 것은 아닙니다. 예를 들어 연산자 ===는 연산자(비트로 AND) 및 |보다 더 긴밀하게 바인딩됩니다. (비트 OR) x와 같은 식에서 1 == 0, (x 및 1) == 0으로 작성해야 하는 경우 코더의 의도입니다. [25] C의 광범위한 가용성과 효율성의 한 가지 결과는 다른 프로그래밍 언어의 컴파일러, 라이브러리 및 인터프리터가 C에서 종종 구현된다는 것입니다.

This entry was posted in Non classé. Bookmark the permalink.

Comments are closed.