C, C언어

C언어 개념과 "Hello World!" 프린트하기.

male014 2025. 3. 7. 19:13

 

 

오늘은 C언어의 개념과 "Hellow Wolrd!"를 프린트해보며 C언어를 찍어먹어 보겠습니다.

 

 


 

개발환경 세팅

C언어를 사용하기 전,

환경설정을 통해 C언어와 VS Code를 사용할 수 있도록 해주어야 합니다.

 

필자는 Ubuntu를 사용중입니다.

따라서 구글에 'Ubuntu C언어 개발환경설정'을 검색해 개발환경을 세팅했습니다.

 

GCC설치 / Visual Studio Code설치 / VS Code Extension 설치 / C/C++ 사용환경 설정 / C/C++빌드환경 설정

등의 절차가 있었습니다. 설치방법과 사용환경 설정은 별로 어렵지 않아, 구글링을 통해 쉽게 따라할 수 있습니다.

 

이후, TCP School에서 제공되는 C언어 교육을 따라하며, C언어의 개념과 기능을 살펴보고 기본적인 코드를 작성하는 시간을 가졌습니다.


 

C언어란?

C언어는, 컴퓨터와 밀접하게 소통할 수 있는 언어 중 하나로,

파이썬, 자바에 비해 컴퓨터의 언어체계를 더 깊이 반영하고 있습니다.

파이썬, 자바가 사용자(인간)에게 편리한 언어라면, C언어는 컴퓨터에게 편리한 언어라고 볼 수 있겠습니다.

C언어처럼 컴퓨터에 가까울수록 저급, 파이썬과 자바처럼 사용자에게 가까울수록 고급언어로 불립니다.

 

C언어는 고급언어중에서 저급에 속하는 정도의 컴퓨터 친화성을 지니고 있습니다.

따라서 기계어, 어셈블리어와 같은 저급언어에 비해 개발이 쉽고 빠르며, 다른 고급언어들에 비해 계산속도가 빠르다는 장점이 있습니다. (황금밸런스를 갖춘 만능언어인 셈입니다.)

하지만 그만큼 복잡하고 어렵긴합니다만, 차근차근 배우다보면 익숙해질 것이라고 확신합니다.

 


 

C언어는 컴파일러

이전의 파이썬으로 코드를 작성할때와 C언어로 코드를 작성할 때의 큰 차이점이 있습니다.

파이썬은 인터프리터인 반면, C언어는 컴파일러라는 점인데요,

파이썬을 처음 배울 때 나왔던 '인터프리터'와 '컴파일러' 이 둘의 차이점을 다시 한번 알아보겠습니다!

 

인터프리터는 코드 실행할 때, 한줄한줄 읽어 내려가며 컴퓨터 언어로 바꿔내려갑니다.

그러다가 오류가 발생하면, 실행을 중단하고 오류가 난 지점을 표시합니다.

 

반면, 컴파일러는 코드를 실행하면 한번에 코드를 컴퓨터 언어로 바꾸어 파일을 생성합니다.

파일에 오류가 있다면, 오류를 알리고, 오류가 없다면 정상적으로 작동하게 됩니다.

 

코드의 길이가 길어지고 프로그램이 커지면 커질수록 컴파일러의 효율이 좋지만,

짧은 길이의 코드나 오류의 수정이 중요한 코드라면 인터프리터가 더 좋겠습니다.

 


 

Hello World! 출력하기.

#include <stdio.h>
#define TEXT "Hello World!"  

int main()

{

    printf(TEXT);
    return 0;

}

위는 C언어에서 Hello World를 출력하는 코드입니다.

 

print("Hello World!")

한번 파이썬에서 "Hello World!"를 출력하는 코드와 비교해보자, 뭔가 많이 다릅니다.

include는 뭐고.. studio는 뭐고... 중괄호는 dict인가..? 파이썬을 할때는 보지못했던 생소한 것들이 너무나 많습니다.

 

위 코드에 나오는 기능들을 하나씩 차근차근 알아보겠습니다.

#include <stdio.h>

우선 include라는 말이 나옵니다.

문자 그대로 '포함하다'의 기능을 지닌 include는, 뒤에 나오는 기능을 내가 코드를 작성하는 파일에 포함시키겠다는 말입니다.

 

stdio.h

stdio.h는 standard input output의 줄임말이라고 합니다.

C언어에서 사용되는 예약어들을 모은 것이 바로 stdio.h인데요,

printf와 같은 기능들을 지닌 문자들을 사전에 정의해둔 예약어들. 그리고 그 예약어들의 모음집이 바로 stdio.h입니다.

#include <stdio.h>가 없으면 예약어들의 기능을 사용할 수 없기 때문에 무조건 작성해주어야 합니다.

작성하지 않아도 예약어들을 사용할 수 있지만, 원칙적으로는 적어주는 것이 좋습니다!

 

define

#define TEXT "Hello World!"

이건 누가봐도 "Hello World!'를 'TEXT'라는 변수에 정의한다라는 의미를 지니고 있죠.

#define ALPHA "Omega"를 입력하면, 'ALPHA'에 "Omega"가 지정되는 식입니다.

 

int main() ~...

int main()

{

    printf(TEXT);
    return 0;

}

main()은 코드의 시작에 들어가는 함수입니다. main의 뒤에는 항상 중괄호가 붙어야합니다.

{}는 시작과 끝을 알리는 것으로, {}의 사이에 실행하고자하는 코드를 입력합니다.

이후 return 0;에서 코드에 오류가 없을 시에 0을 main함수의 값으로 반환하고, 종료합니다.

'나 return인데 코드 끝났다'라고 말해주는 녀석입니다.

 

; 세미콜론

C언어의 코드 한줄한줄 끝에는 항상 (;)세미콜론이 붙습니다.

파이썬에서는 엔터로 줄바꿈을 하였지만, C언어는 ;세미콜론을 붙이지 않으면 줄바꿈을 인식하지 못합니다.

절대로 잊으면 안되는 기능입니다.

 


 

완성

#include <stdio.h>
#define TEXT "Hello World!"  

int main()

{

    printf(TEXT);
    return 0;

}

그렇게 완성된 "Hello World!"를 출력하는 C언어의 코드입니다.

파이썬보다 직접 정의해주어야 하는 것들이 많습니다.

하지만 하나하나 직접 정의해주는 만큼, 코드가 정교하고 논리적입니다.

 

이러한 C언어의 특성을 일컬어 '정적언어'라고 합니다.

반대로 파이썬과 자바같은 언어들을 변수의 변경이 비교적 자유로운 '동적언어'이죠.

 


 

앞으로 C언어에 대해 공부하고 프로그램을 제작할 예정입니다.

포기하지 않고 능숙하게 C언어를 구사할 수 있는 훌륭한 개발자가 되어보도록 하겠습니다.

그럼 들어가보겠습니다.

 

글을 읽어주셔서 감사합니다.

-male014 / 25.03.07