5/4 C언어(프로그래밍 언어)

JK·2023년 5월 4일
0

오늘은 4주간의 알고리즘 공부가 끝나고 C언어에 관한 공부를 시작했습니다
프로그래밍 공부를 시작한 지 얼마 되지 않아 Python밖에 사용해 보지 못했기에 걱정이 큽니다
오늘은 C언어에 대한 기초와 환경설정을 했습니다

C언어

C 언어는 프로그래밍 언어 중에서 가장 기본적인 언어 중 하나입니다. 다른 프로그래밍 언어들의 기반이 된 언어로, 시스템 프로그래밍, 임베디드 시스템, 네트워크 프로그래밍, 데이터베이스 시스템 등의 다양한 분야에서 활용됩니다.

C 언어의 특징은 다음과 같습니다.

  • 구조적 프로그래밍 지원 : C 언어는 구조적 프로그래밍의 개념을 지원합니다. 이는 프로그램을 작은 조각으로 분할하여 개발하고 디버깅할 수 있도록 하는 프로그래밍 방법입니다.

  • 저수준 언어 : C 언어는 하드웨어와 밀접한 관련이 있으므로, 메모리, 입출력 장치 등과 같은 하드웨어 제어를 지원합니다. 이는 프로그래머가 하드웨어에 더 가까운 수준에서 제어할 수 있도록 합니다.

  • 이식성 : C 언어는 하드웨어나 운영체제에 종속되지 않는 이식성이 높은 언어입니다. 이는 C 언어로 작성한 프로그램을 다른 운영체제나 하드웨어에 쉽게 이식할 수 있다는 것을 의미합니다.

  • 효율성 : C 언어는 컴파일러에 의해 기계어로 변환됩니다. 이는 실행 속도가 빠르고 메모리 사용량이 적다는 것을 의미합니다.

  • 포인터 : C 언어는 포인터 개념을 지원합니다. 이는 메모리 주소를 가리키는 변수로, 배열, 구조체 등을 다루는 데 매우 유용합니다.

  • 표준 라이브러리 : C 언어는 ANSI C 표준을 따르는 표준 라이브러리를 제공합니다. 이는 입출력 함수, 문자열 처리 함수, 수학 함수 등 다양한 함수들로 구성되어 있습니다.

이러한 C 언어의 특징은 프로그래밍 언어를 학습하거나 프로그래밍을 할 때 중요한 기반이 됩니다.

C언어를 배워야 하는 이유

C 언어는 프로그래밍 분야에서 가장 기본적인 언어 중 하나이며, 다른 프로그래밍 언어들의 기반이 된 언어입니다. 따라서 C 언어를 배우면 프로그래밍 분야에서의 기본기를 닦을 수 있습니다. 이를테면 다음과 같은 이유로 C 언어를 배워야 합니다.

  • 하드웨어 제어를 위한 언어
    C 언어는 하드웨어와 밀접한 관련이 있으므로, 메모리, 입출력 장치 등과 같은 하드웨어 제어를 지원합니다. 이는 프로그래머가 하드웨어에 더 가까운 수준에서 제어할 수 있도록 합니다.

  • 컴퓨터 시스템에 대한 이해도 향상
    C 언어는 컴퓨터 시스템에 대한 이해도를 향상시키는 데 큰 도움이 됩니다. 이는 하드웨어와 소프트웨어 사이의 관계, 메모리 관리, 스택 등을 이해할 수 있도록 합니다.

  • 다양한 분야에서 사용되는 언어
    C 언어는 다양한 분야에서 사용됩니다. 이는 시스템 프로그래밍, 임베디드 시스템, 네트워크 프로그래밍, 데이터베이스 시스템 등의 분야를 포함합니다.

이러한 이유로 C 언어는 프로그래밍 분야에서의 기본기를 닦고, 하드웨어와 소프트웨어 사이의 관계를 이해하는 데 큰 도움이 됩니다. 또한 다양한 분야에서 사용되므로, 프로그래밍 분야에서 일하는 데 매우 유용합니다.

C언어의 단점

C 언어는 매우 강력한 언어이며, 시스템 프로그래밍 및 하드웨어 제어에 적합하며 다른 프로그래밍 언어들에 비해 매우 빠르고 효율적입니다. 그러나 다음과 같은 몇 가지 단점도 있습니다.

  • 메모리 관리: C 언어는 메모리 관리를 개발자가 수동으로 처리해야합니다. 이는 불필요한 메모리 할당 및 해제로 인한 버그 발생 가능성이 높다는 것을 의미합니다.

  • 보안: C 언어는 메모리 관리와 관련된 취약점으로 인해 보안 문제가 발생할 수 있습니다. 버퍼 오버플로우 및 포인터 역참조를 이용한 공격이 대표적인 예입니다.

  • 복잡성: C 언어는 처음에 배우기 어렵고 언어의 문법과 구조가 복잡합니다. 이는 초보자들에게는 어려움을 줄 수 있습니다.

  • 기능 제한: C 언어는 언어 자체에서 제공하는 기능이 제한적입니다. 라이브러리를 이용하여 기능을 확장할 수 있지만, 다른 언어에 비해 표준 라이브러리의 기능이 적은 편입니다.

다음은 Visual Studio Code에서 C언어 계발 환경을 만들고 기초적인 입출력에 대해 공부했습니다

Hello, World!

C 언어에서 가장 기본적인 프로그램은 "Hello, World!"를 출력하는 것입니다. 이를 출력하는 가장 간단한 방법은 다음과 같습니다.

  1. 텍스트 에디터로 소스 코드 작성: C 언어로 작성된 소스 코드를 작성하기 위해서는 텍스트 에디터가 필요합니다. 예를 들어, Windows에서는 메모장, macOS에서는 텍스트 편집기, Linux에서는 Vim, Nano 등을 사용할 수 있습니다.

  2. 코드 작성: 텍스트 에디터에서 새로운 파일을 만들고 다음과 같은 코드를 작성합니다.

#include <stdio.h>
int main() {
    printf("Hello, World!");
    return 0;
}

위 코드는 stdio.h 헤더 파일을 포함하고, main() 함수를 정의하여 "Hello, World!"를 출력합니다.

  1. 파일 저장: 작성된 코드를 파일에 저장합니다. 파일 이름은 "hello.c"와 같이 지정할 수 있습니다.

  2. 컴파일: 작성된 코드를 컴파일하여 실행 파일을 만들어야 합니다. Windows에서는 MinGW, macOS와 Linux에서는 GCC와 같은 컴파일러를 사용할 수 있습니다. 아래와 같은 명령어를 입력하여 컴파일할 수 있습니다.

gcc -o hello hello.c

위 명령어는 "hello.c" 파일을 컴파일하여 실행 파일인 "hello"를 만듭니다.

  1. 실행: 실행 파일을 실행하기 위해서는 아래와 같은 명령어를 입력합니다.
./hello

위 명령어는 "hello" 파일을 실행하여 "Hello, World!" 메시지를 출력합니다.

이러한 단계를 거쳐서 "Hello, World!"를 출력하는 C 프로그램을 작성하고 실행할 수 있습니다. 이후에는 C 언어의 문법과 구조, 변수, 함수 등을 공부하여 더 복잡한 프로그램을 작성할 수 있습니다.

Python을 오래 사용한 건 아니지만 한 언어만 사용하다가 다른 언어를 배운다는 게 낯설게만 느껴집니다
그래도 프로그래밍을 공부할 때 필수적으로 C언어를 공부한다고 하니 열심히 해보겠습니다!!

profile
^^

0개의 댓글