C 언어의 기초와 원리
기초
데니스 리치
- C 언어 창시자: 데니스 리치는 C 언어를 개발하여 프로그래밍 언어의 중요한 발전을 이끌었다.
- UNIX의 C 언어 재작성: 원래 B 언어로 작성된 UNIX 운영체제를 C 언어로 다시 작성하여 C 언어의 효용성과 강력함을 입증했다.
- C 언어와 B 언어의 차이: C 언어는 B 언어에 비해 자료형이 존재하여 더 강력한 타입 체크와 구조적 프로그래밍이 가능하다.
원리
다음은 간단한 C 프로그램의 예제이다:
#include <stdio.h>
int main(void) {
printf('a');
return 0;
}
코드 설명
#include <stdio.h>
: 표준 입출력 라이브러리를 포함한다. 이는printf
함수의 선언을 포함하고 있어 프로그램에서printf
를 사용할 수 있게 한다.int main(void)
: 프로그램의 시작점인main
함수이다.int
는 함수가 정수 값을 반환함을 정의한다.printf('a');
: 문자 'a'를 출력하는 함수 호출이다.stdio.h
에 선언된printf
함수를 사용한다.return 0;
: 프로그램이 정상적으로 종료되었음을 운영체제에 알린다. 큰 의미는 없지만, 오류 없이 종료되었음을 나타낸다.- 함수 호출 관계:
main
함수는 호출자(caller)로서printf
라는 피호출자(callee)를 호출한다.printf
함수의 매개변수는 반드시 초기값이 확정되어야 한다. void
의 의미:void
는 매개변수가 없음을 나타내며, 함수가 인자를 받지 않음을 명확히 한다. 혹은 함수의 반환 값이 존재하지 않음을 나타내기도 한다. c언어는 함수가 반환하는 값의 자료형을 함수 이름 앞에 명시하기 때문에 반드시 알아두어야 한다.
추가 설명
- 헤더 파일:
stdio.h
와 같은 헤더 파일은 함수의 선언과 매크로 정의를 포함하여, 코드가 올바르게 컴파일될 수 있도록 도와준다. - 자료형의 중요성: C 언어는 명시적인 자료형을 사용하여 변수와 함수의 반환 값을 정의함으로써, 코드의 안정성과 가독성을 높인다.