< 기본 용어 >
- 기계어 : 컴퓨터가 이해하는 언어로, 이진수(0과 1)로 구성된다.
- 컴파일러(compiler) : 작성한 프로그래밍 언어를 기계어로 바꿔주는 소프트웨어.
< C언어의 특징 >
1. C언어 = 저급언어의 특징 + 고급언어의 특징
=> 메모리와 하드웨어를 직접 조작하면서도 복잡한 앱을 쉽게 작성 가능.
- 따라서 UNIX(운영 체제)를 비롯한 많은 운영체제 및 시스템 소프트웨어 개발에서 사용 됨.
2. 단순하고 간결한 문법으로 프로그램 이해가 쉬움. (간결함)
3. 속도와 메모리 사용량이 중요한 시스템 프로그래밍이나 게임 라이브러리 개발에 많이 사용됨.
- 매우 효율적으로 실행될 수 있는 기계어 코드로 컴파일 되기 때문. (효율적임)
4. 저수준과 고수준 모두 가능.
5. 이식성이 뛰어남.
6. 배우기 어려움.
< C언어의 용도 >
- 시스템 프로그래밍, 게임 개발, 임베디드 시스템, 인공지능 등
< 프로그램 개발 과정 >
1. 텍스트 에디터(예 : 메모장)로 C언어 소스파일(확장자: '.c')을 작성
2. 컴파일러(compiler)가 소스파일을 기계어로 변환
3. 컴파일 성공시 exe파일이 생성됨. (예 : hello.c -> hello.exe) 이 프로그램을 실행.
*빌드(build) : 컴파일과 링크 하여 완전한 실행 파일을 생성하는 것.
- IDE(통합 개발 환경, Integrated Development Environment) : 프로그램에 필요한 에디팅, 컴파일, 실행, 디버깅 기능을 하나의 프로그램 안에 모두 넣어서 프로그램 개발을 쉽게 해주는 도구. (예 : Visual Studio, Eclipse)
참고1) Visual Studio 설치 시, C가 아니고 C++ 개발 환경을 설치해야함. 그 이유는 C++은 C의 상위 집합이라고 불리기 때문. 즉, C++언어는 C언어를 완벽하게 포함하고 있음.
참고2) Visual Studio에서 소스 코드 추가시 .cpp로 돼있는 파일을 .c로 바꿔줘야함.
참고3) 솔루션(solution) : 문제 해결에 필요한 프로젝트들이 들어있는 컨테이너.
참고4) 프로젝트(project) : 하나의 실행 파일을 만드는데 필요한 여러 가지 항목들(소스 코드, 아이콘, 데이터,...)이 들어 있는 컨테이너.
< "Hello World!"를 출력시키는 코드 >
#include <stdio.h>
int main(void)
{
printf("Hello World!");
retrun 0;
}
- 입출력을 위한 #include <stdio.h>
- 전처리기(=매크로, preprocessor) : '#'으로 시작하는 문장은 전처리기 지시자. 보통 전처리기는 본격적으로 컴파일하기 전 사전 작업을 하는 컴파일러의 일부분.
- 헤더 파일(header file) : 컴파일에 필요한 정보들이 저장되어 있음. '.h'의 확장자를 가짐
'#include'는 소스 코드 안에 특정 파일을 포함시키라고 지시하는 명령어이며, 'stdio.h'파일은 입출력 함수에 대한 정보를 가지고 있는 헤더 파일(라이브러리).
* 함수(function) : 특정한 작업을 수행하는 코드의 집합.
- main : 함수, 모든 C 프로그램은 main함수로부터 시작하며 이 함수의 반환값은 int형이다.
- printf : 괄호 안에 있는 문자열을 출력하는 함수.
- return 0 : main 함수가 0 값을 반환하고 프로그램을 종료한다는 것을 나타냄.
- {,} : 함수의 시작과 종료를 알리는 기호.
- 세미콜론(;) : 문장이 끝남을 알리는 기호.
< 주석 >
- 문장이 길어질수록 중요해진다.
1. /* + 주석 처리 할 내용 + */
: /* 이후 부터 */까지 전체 주석 처리.
2. // + 주석 처리 할 문장
: 한줄 주석 처리.
< 줄바꿈 기호 >
- 문장을 출력할 때 'hello'와 'world'를 각기 다른 줄에 출력하고 싶은 경우 :
1) printf("hello");
printf("world");
(X)
=> 줄이 바뀌지 않은채, 'helloworld' 로 출력됨.
2) printf("hello\nworld");
(O)
- 위와 같이, '\n'은 줄바꿈(newline)을 의미하며 커서를 다음 줄의 시작 위치로 옮겨줌.
< 알고리즘(algorithm) >
- 알고리즘 : 문제를 풀기 위하여 컴퓨터가 수행해야 할 단계적인 절차를 기술한 것.
- 기술 방법 :
1) 자연어(natural language) : 일상적으로 사용하는 언어로 문제 해결 과정을 순서대로 나열하는 방법.
2) 순서도(flow chart) : 프로그램에서 논리 순서 또는 작업 순서를 그림으로 표현하는 방법.
* 순서도 프로그램 : 파워포인트, Draw.io, GitMind 등
3) 의사 코드(= ,pseudo code) : 자연어보다는 체계적이고 프로그래밍 언어보다는 덜 엄격한 언어, 알고리즘의 표현에 주로 사용되는 코드.
'프로그래밍 언어 > C언어_기초 프로그래밍' 카테고리의 다른 글
[ C언어 기초 ] 6. 반복문 (2) | 2024.09.16 |
---|---|
[ C언어 기초 ] 5. 조건문 (7) | 2024.09.16 |
[ C언어 기초 ] 4. 수식과 연산자 (0) | 2024.09.04 |
[ C언어 기초 ] 3. 자료형 (1) | 2024.08.28 |
[ C언어 기초 ] 2. 변수와 입출력 (1) | 2024.08.07 |