C언어란?
UNIX라는 운영체제의 개발을 위해 Dennis Ritchie와 Ken Thompson이 함께 개발한 컴퓨터 언어이다
C언어가 개발되기 전에는 'assembly'라는 Low-level 언어로 UNIX를 개발했는데, 하드웨어에 따라 그 구성이 달라지기 때문에 CPU별로 UNIX를 각각 개발해야하는 단점이 있었다
C언어는 High-level 언어이면서 메모리에 직접 접근이 가능한 Low-level 언어의 특성도 지니고 있다.
Compiler
C언어는 컴파일러 언어의 대표적인 예이다
컴파일러는 프로그래밍 언어를 컴퓨터가 이해할 수 있는 기계어로 번역하는 역할을 수행해, 작성된 프로그램을 컴퓨터가 실행할 수 있도록 한다.
Interpreter
컴파일러 언어 외에도 인터프리터 언어가 존재하는데, 이 대표적인 예가 Python이다.
컴파일러는 프로그래밍 언어를 기계어로 완전히 번역한 후에 컴퓨터가 실행시키는 방식이지만, 인터프리터는 프로그래밍 언어를 번역과 동시에 컴퓨터가 실행시키는 방식이다
그렇기 때문에, 실행 시간은 컴파일러 언어가 인터프리터 언어에 비해 유리하고 개발의 편의성은 인터프리터 언어가 편리한 특징을 가지고 있다.
C 프로그램의 완성 과정
- 프로그래밍 언어로 프로그램을 작성
- 프로그래밍 언어를 기반으로 작성된 프로그램을 source라고 함
- 컴파일러를 통해 source를 컴파일
- Source를 compile하게 되면, Object 파일을 생성(.obj)
- Compile된 결과물을 Link
- Object파일을 실행가능한 exe파일로 변환 시키는 작업
함수
C언어의 기본 단위는 함수이다
#include <stdio.h>
int main (void)
{
// ok(주석 : 한줄에 하나의 문장)
printf("Hello World! \n");
return 0;
// ok(주석 : 한줄에 두개의 문장)
printf("Hello World! \n"); return 0;
}
위와 같은 프로그램이 있다고 할때, 첫 번째 함수를 호출하면서 프로그램이 실행된다
여기서 `int`는 함수의 출력 형태, `main`은 함수의 이름 그리고 `void`는 함수의 입력 형태를 의미한다.
기초 문법
- 함수 내에 존재하는 문장의 끝에는 세미 콜론(;)을 반드시 붙여야 한다
- 한 줄에 둘 이상의 문장을 표현할 수도 있다(가독성은 떨어짐)
`#include <stdio.h>`는 헤더파일을 선언하는 문장으로, python을 기준으로 하면 `import`문과 동일한 기능을 가진다고 이해할 수 있다.
`stdio.h`라는 파일의 내용을 불러오는 의미로, `stdio.h`안의 함수인 `printf`를 사용하기 위해 불러오는 것이다.
또한, `//`과 `/* */`를 사용해 주석을 삽입할 수 있는데 전자는 한줄의 주석, 후자는 여러 줄의 주석을 작성할 수 있다.
printf 함수를 이용한 정수의 출력
#include <stdio.h>
int main (void) {
printf("Hello Everybody\n");
printf("%d\n", 1234);
printf("%d %d \n", 10, 20);
return 0;
}
`printf`함수는 string 타입의 데이터만 출력할 수 있기 때문에, 그냥 숫자를 넣어서 출력하면 Error가 발생하게 되므로,
`%d` 서식문자를 사용해 정수를 출력할 수 있다.
*`%d`는 부호가 있는 10진수 정수의 형태로 출력하라는 의미를 담는다.
'공부 > C언어' 카테고리의 다른 글
C언어 - (6) : 반복문 (0) | 2024.10.07 |
---|---|
C언어 - (5) : printf / scanf (3) | 2024.10.06 |
C언어 - (4) : 자료형/형 변환 (3) | 2024.10.03 |
C언어 - (3) : 자료형 별 데이터의 표현 방식 / 비트 연산자 (2) | 2024.09.11 |
C언어 - (2) : 변수 / 연산자 (0) | 2024.09.09 |