카테고리 없음

[C언어프로그래밍 노트] 01. Visual studio code사용법(Mac os), 프로그래밍의 기본 요소와 작성 과정

mingmingming 2025. 3. 16. 22:19

 

 

visual Studio란?

Visual Studio는 마이크로소프트에서 에디터, 컴파일러, 디버깅 기능 등을 하나로 통합하여 개발한 통합 개발 환경으로 웹, 클라우드, 데스크톱, 모바일 앱, 서비스, 게임을 빌드하는 C언어 개발자를 위한 코드 편집 프로그램입니다. 마이크로소프트는 Visual Studio community와 Visual Studio code를 무료로 제공하고 있으며, 맥OS를 사용하는 경우, Visual Studio code를 다운로드 할 수 있습니다. 학교, 책, 유튜브 등 강의의 대부분은 Visual Studio community를 다루고 있기 때문에 맥 이용자에게 도움이 되고자 Visual Studio code를 이용한 프로그래밍 과정을 작성하도록 하겠습니다.

 

 

1) Visual Studio Code 파일 만들기

C프로그램을 작성하기 전에 가장 먼저 파일을 생성해야 합니다.

 

 

Visual Studio Code를 실행하면 가장 먼저 나오는 창입니다. 열기를 클릭하여 새로운 파일을 생성할 수 있습니다.

 

 

저는 새폴더의 이름을 Cprogramming_2025로 만들었으며, 열기를 클릭하여 파일을 열 수 있습니다.

 

 

파일 열기를 하면 화면 왼쪽에 탐색기가 생성이 되며 페이지를 생성할 수 있게 됩니다.

(탐색기의 위치는 우클릭하여 오른쪽으로 바꿀 수 있습니다.)

 

 

이렇게 생성된 페이지에 작업 내용을 작성한 것을 소스 코드라고 합니다.

소스 코드가 들어 있는 파일인 소스 파일의 이름 끝에는 항상 .c(c) 혹은 .cpp(c++)를 붙여야합니다.

이 블로그에선 c언어를 다루기 때문에 Cprogramming_1.c라는 이름을 붙였습니다.

 

 

2)확장파일 다운받기

Visual Studio는 완전한 기능을 갖춘 프로그램입니다. 그러나 Visual Studio Code는 완전한 기능은 갖추지 않은 편집기로, C실행을 위해서 확장 파일 다운로드와 업데이트가 필요합니다.

 

C언어를 하는 데 기본적으로 필요한 확장 파일은 아래와 같고 다른 파일이 필요한 경우에 추가적으로 다운로드 할 수 있습니다.

 

 

확장파일은 마켓플레이스에서 다운받을 수 있습니다. 

 

 

C/C++, Code Runner는 C를 실행하기 위해 다운 받아야하는 필수 프로그램이며,

언어를 한국어로 설정하고 싶은 경우에는 추가적으로 한국어 팩을 다운받으면 됩니다.

 

 

3) 프로그램 작성하기

이제 프로그램을 작성하기 위한 모든 준비가 끝났으며 새로 만들어 놓은 Cprogramming_1.c 페이지에 소스 코드를 입력할 수 있습니다.

 

 

우선, 사진의 소스를 틀리지 않도록 주의해서 따라 적습니다.

 

 

실행버튼을 눌러서 실행시킵니다.

 

 

그럼 아래의 터미널에 실행 결과가 나옵니다.

에러가 났을 경우 위와 같이 빨간색 글씨로 에러라고 뜨며, 잘못된 부분을 찾아 수정한 뒤 다시 실행시킵니다.

 

그러나 오타가 없는데도 사진과 같이 "Linker command failed with exit code 1" 에러가 떴을 경우,

저장을 하지 않고 실행시켜 발생한 오류이기 때문에 저장을 한 뒤 실행시키면 정상적으로 실행됩니다.

 

 

터미널에 Hello World!라고 뜨면 성공입니다.

 

4) 소스코드 정리

앞서 작성했던 소스코드를 입력해서 "Hello World"가 나오도록 실행은 시켰으나 C언어를 처음 접하게 되면 이 문장들이 무엇을 의미하는지 모를 것입니다. 따라서 C언어를 사용하면서 접할 수 있는 문장들에 대해서 정리를 해보았습니다.

 

  • #include <stdio.h>

#으로 시작하는 문장은 전처리기(preprocessor) 지시자 입니다. 전처리기는 컴파일(작성한 코드를 기계어로 바꾸는 과정)하기 전에 코드에서 특정 작업을 하며, 이 작업을 하는 명령어들을 전처리 지시자라고 합니다. 즉, #include는 전처리기 지시자로 헤더파일을 가져오는 역할을 합니다.

 

여기서 헤더파일이란? 필요한 기능을 미리 정리해둔 파일입니다. 예를들어 설명하자면 유명한 요리사가 만든 레시피 처럼 전문가들이 만들어 놓은 기능들의 집합이라고 이해하면 쉽습니다.

 

즉, #include <stdio.h> 는 #include라는 전처리기stdio.h라는 헤더파일을 가져와서 printf()(출력)와 같은 기능을 쓸 수 있게 해줍니다.

 

정리 - #include : 헤더파일을 가져오는 전처리기.

         <stdio.h> : Standard Input/output의 약자로 입출력 함수를 포함하는 헤더파일.

 

  • int main(void)

위 문장은 main()함수를 정의하는 문장입니다. main()은 프로그램이 시작되는 함수로 C프로그램에는 반드시 main()함수가 필요합니다.

int는 함수가 출력하는 값의 타입이 정수라는 것을 의미합니다. void는 아무입력이 필요하지 않다는 뜻입니다. 예를 들어서 게임에서 "닉네임을 입력하세요" 같은 입력을 받을 수 있는데 void는 그런 입력이 필요하지 않다는 뜻입니다.

 

  • printf("Hello World")

printf는 화면에 글자를 출력하는 기능입니다. 따라서 printf("Hello World")는 Hello World가 출력됩니다.

printf에 대해선 아래에서 더 자세히 설명하도록 하겠습니다.

 

  • return 0;

return 0; 은 작업이 끝났다는 신호입니다. 이 문장이 수행되면 작업을 끝내고 외부로 0값을 반환합니다.

return 1; 은 프로그램이 비정상적으로 끝났다는 의미입니다.

 

+추가정리

- ;(세미콜론) : 문장의 끝을 나타냄.

- {}(curly bracket) : 함수의 시작과 끝을 나타냄.

- 들여쓰기 : 필수는 아니지만 가독성이 좋고 디버깅에 용이하기 때문에 사용하는 것을 권장.

- 주석 : 주석은 컴파일러가 무시하여 프로그램의 실행에 영향을 미치지 않아 코드에 대한 설명이나 메모를 작성 할 수 있음.

        // : 한 줄 주석으로 그 한 줄이 주석이 됨.

        /* : 여러 줄 주석으로 여러 줄을 주석으로 쓸 수 있음.

 

5) 변수

변수란 프로그램이 사용하는 데이터를 일시적으로 저장할 목적으로 사용하는 메모리 공간입니다.

변수의 기본요소에는 자료형, 변수 이름, 이 있습니다. 

 

1. C에서 주로 사용되는 자료형 : 실수, 정수 등 값의 종류에 따라 자료형을 지정해야 합니다.

 

  • int: 정수형
  • float: 실수형
  • double: 더 정밀한 실수형
  • char: 문자형

2. 변수 이름(식별자) : 변수의 이름은 마음대로 지을 수 있지만 아래의 규칙을 지켜야 합니다.

 

  • 알파벳, 숫자, 밑줄 문자(_)로 이루어진다.
  • 식별자의 중간에 공백이 들어가면 안 된다.
  • 식별자는 숫자로 시작할 수 없다.
  • 대문자와 소문자는 구별되기 때문에 index, Index, INDEX는 모두 다른 변수이다.
  • C언어의 키워드와 똑같은 식별자는 허용되지 않는다.

C언어의 키워드. 출처 : https://www.tutorialspoint.com/computer_programming/computer_programming_keywords.htm

 

3. 값 : 값은 변수에 저장된 실제 데이터입니다.

 

 

위와 같이 소스파일을 작성하여 변수 선언을 할 수 있습니다. 주석을 참고하여 소스를 따라해보시기 바랍니다.

사진에는 잘려서 나왔으나 #include <stdio.h>를 포함해야합니다.

 

추가로, int x = 10; 과 같이 변수에 초기값을 줄 수도 있습니다.

 

 

출력 함수인 printf()와 작업이 끝났다는 신호인 return 0;을 작성하고 실행시키면 터미널 결과에 3과 5의 합인 8이 나옵니다.

 

+추가정리

다음은 정해진 규칙은 아니지만 개발자들이 주로 사용하는 명명 방식입니다.

- sum : 합

- diff : 차

- mul : 곱

- div : 나눗셈 몫

 

6) 출력 함수

헤더파일 <stdio.h>의 라이브러리 함수 중 출력함수인 printf()에 대해 설명하도록 하겠습니다.

 

  • 기본 문법

- 문자열 출력 : printf("문자열");   ex) printf("Hello World!");

- 변수값 출력 : printf("출력할 형식 문자열", 출력할 값);  ex) printf("두수의 합 : %d \n", sum);

                      출력할 형식 문자열이란 텍스트와 형식 지정자(%d, %f, %s 등)가 포함된 문자열을 말합니다.

형식 지정자 의미 실행결과
%d 10진 정수로 출력 printf("%d \n", 10); 10
%f 실수로 출력 printf("%f \n", 3.14); 3.14
%c 문자로 출력 printf("%c \n", a); a
%s 문자열로 출력 printf("%s \n", "Hello"); Hello

 

따라서 앞서 작성했던 printf("두 수의 합 : %d", sum); 은 sum의 값을 10진 정수인 "두 수의 합 : 8" 으로 출력한 것입니다.

 

그런데 기본 문법의 예시에는 \n이 포함되어 있습니다. \n은 무엇일까요?

\n 은 줄바꿈을 의미하는 "이스케이프 시퀀스"입니다.

printf() 함수를 하나만 출력한다면 줄바꿈이 필요가 없지만 여러 식을 같이 출력하게 된다면 가독성을 위해 줄바꿈이 필요해집니다.

 

 

설명을 위해 이전 소스에서 곱셈식 mull을 추가했습니다.

 

 

이대로 실행하니 줄바꿈 없이 8과 15가 그대로 출력되어 8과 15인지 815인지 알 수 없게 되었습니다.

따라서 \n을 추가해 가독성을 높여주어야 합니다.

 

 

\n을 추가한 결과 8과 15가 분리되어 정확한 결과를 알 수 있게 되었습니다.

 

+추가정리

필드폭(width)과 정밀도(precision) : printf()를 사용하여 출력할 때, 데이터를 어떤 크기로, 소숫점 이하 몇자리까지 출력할지 지정할 수 있습니다.

표현 의미 예제 결과
%10d 폭10, 우측정렬 printf("%10d", 42); 42(우측정렬)
%-10d 폭10, 좌측정렬 printf("%-10d", 42); 42(좌측정렬)
%.2f 소수점 2자리까지 출력 printf("%.2f", 3.1415); 3.14
%10.4f 폭10, 소수점 4자리까지 우측정렬 출력 printf("%.10.4f", 3.141592); 3.1415(우측정렬)
%-10.4f 폭10, 소수점 4자리까지 좌측정렬 출력 printf("%.-10.4f", 3.141592); 3.1415(좌측정렬)

 

 

7) 입력함수

헤더파일 <stdio.h>의 라이브러리 함수 중 입력함수인 scanf()에 대해 설명하도록 하겠습니다.

scanf는 사용자가 입력한 값을 변수에 저장합니다.

 

  • 기본문법

scanf("형식 지정자", &변수);

대부분 printf()와 같습니다.

형식지정자 의미
%d 10진 정수를 입력한다. scanf("%d", &i);
%f float 형의 실수를 입력한다. scanf("%f", &f);
%lf double 형의 실수를 입력한다. scanf("%lf", %d);
%c 하나의 문자를 입력한다. scanf(" %c", &ch);    %c 앞에 공백 필수
%s 문자열을 입력한다. char s [10]; scanf("%s", s);

 

%d만 예시로 실행해보겠습니다.

 

 

위와같은 소스를 만들었습니다. 여기서 #define _CRT_SECURE_NO_WARNINGS는

보안 문제로 인해 안전한 함수를 사용하라는 경고를 무시하기 위한 문장입니다.

이 경고는 유익하지 않은 것으로 평가가 되었으며 scanf()사용시 오류가 난다면 저 문장을 추가해주시기 바랍니다.

 

위 소스를 실행하면 터미널에 "숫자를 입력하세요 : "라는 문구가 출력됩니다.

 

 

숫자 10을 입력하면 scanf()함수가 num에 저장하고 pirntf()함수가 입력한 숫자를 다시 출력합니다.

 

 

위 함수들을 이용하여 여러가지 프로그램을 만들 수 있습니다.

 

 

덧셈 프로그램

 

 

원의 면적 계산 프로그램

 

8) 디버깅

프로그래밍의 작성과정 (소스 작성 - 컴파일 - 링크 - 실행 - 디버깅)의 마지막인 디버깅에 대해서 설명하겠습니다.

 

 

탐색기 아래쪽에 벌레모양의 실행버튼을 클릭하면 디버깅을 할 수 있습니다.

 

 

틀린곳이 없다면 프로그램이 정상적으로 종료 되었음을 의미하는

"The program has exited with code 0 (0x00000000)"라는 문구가 뜹니다.

 

 

int main(void)를 (viod)로 변경한 뒤 디버깅을 하니 오류가 발생했다고 뜹니다.

이때 오류 표시를 클릭하면 어느 부분이 잘못되었는지 알려줍니다.

 

 

디버그 콘솔에는 0이 아닌 1이 출력되며, 틀린 부분을 알려줍니다.

 

 

만약 전체가 아닌 부분적으로 디버깅을 하고싶다면

왼쪽의 빨간 버튼인 중단점을 추가해 범위를 설정할 수 있습니다.

 

 

 

 

이상으로 Visual Studio Code의 사용법과 프로그래밍의 기본요소 설명을 마치도록 하겠습니다.

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