'C언어' 카테고리의 글 목록 :: YJcode

변수란 무엇인가? 말 그대로 변하는 수. 즉, 고정되지 않은 수를 변수라고 말한다.

 

하지만 프로그래밍을 하는 여러분은 앞으로 프로그래밍적인 측변에서 이에 대해 접근해야 할 것이다.

 

 

프로그래밍 언어에서 변수란, 어떤 수, 문자, 혹은 위치정보를 저장하는 저장 공간을 의미한다.

 

앞으로는 변수 'A'를 선언한다 와 같은 문구를 많이 접하게 될 것인데, 여기서 변수 'A'를 선언한다.

라는 말은 다르게 말하면 무언가를 담을 수 있는 이름이 'A' 인 저장공간을 만들겠다. 라고 해석하면 되겠다.

물론 이게 완벽하게 정확한 의미는 아니다. 다만 지금은 이렇게 알고 있고, 차후 각자 자신만의 정의를 내리며 다시한번 정리를 해 나가면 되겠다.

 

그렇다면 변수는 어떤식으로 사용되는지 알아보자.

 

변수를 사용하려면 변수가 있다는 것을 컴퓨터에게 알려주어야 한다. 이것을 "변수를 선언한다." 라고 표현하는데,

C언어에서는 변수선언에 대한 규칙이 미리 정해져 있다. 아래가 변수를 선언하는 가장 기본적인 형태이다.

 

  • 변수타입 + 변수이름 + ;

변수 타입은 int, long, float, double 과 같은 변수의 형태를 말하고, 변수이름은 그 변수를 다른 변수와 구분하기 위해 사용되는 닉네임이라고 보면 된다. 그리고 ;를 붙여주는데, ';'는 C언어에서 명령이 하나 끝났음을 컴파일러에게 알려주는 역할을 한다. 예를 들어서 변수를 하나 선언해보겠다.

 

  •  int number;

 

int 는 변수타입, number는 변수이름이 되겠다.

 

변수타입은 여러 종류가 있고 앞으로 다루게 되겠지만 당장은 이러한 형태가 있다는 것만 알아도 충분하다.

 

이렇게 변수를 선언하고 나면 필수적으로 필요한게 변수 초기화이다.

위의 변수선언 기본형은 변수를 사용하겠다는 것을 표현한 것으로, 이문장을 만나면 컴파일러는 차후 실제로 만들 프로그램에 변수공간을 할당(배정)해 주게 된다. 이때 어느 공간이 할당이 될지는 알 수 없으며, 이전에 누가 사용했는지는 더더욱 알수없다.

 

지금 할 설명은 아니지만 조금 자세히 설명을 하자면, 변수가 어디에 저장되는지 혹시 알고 있는가?

알고 있다면 좋겠지만 모르고 있다면 가볍게 듣고 넘어가길 바란다. 만약 위와 같이 int number라는 소스코드가 포함된 실행파일을 실행하면 프로그램(프로세서)는 메모리공간에 number라는 이름의 공간을 만들어 주는데, 이전에 누가 사용했는지, number라는 변수공간안에 뭐가 들어있는지 아무도 알지 못한다. 왜냐하면 그전에는 사용하지 않던 공간을 사용하는 것이므로 관리가 되지 않고 있던 메모리 공간이기 때문이다. 만약 이 공간이 일정한 값으로 정해져 있다면, 컴퓨터는 절대 지금처럼 빠르게 동작할수 없다는 사실을 알고 있어야 한다. 그래서 현대 컴퓨팅 시스템은 메모리를 사용하기 전에 정리하기 보다는 사용을 할때 필요한 놈이 직접 정리하도록 암묵적으로 약속하였고, 그렇게 실행되고 있다. 그것이 효율적이기 때문이다.

 

그렇기에 변수를 선언하면, 그 변수에 담겨있는 내용물은 아무 의미없는, 알수없는 값이 들어 있으며, 이것을 흔히 쓰레기값, 혹은 NULL값 이라고 부른다. 이 NULL값을 우리가 초기화해야 하며, 이것은 앞으로 코딩하는데 있어서 필수적으로 습관을 들여놓기를 바란다. 그렇다면 초기화는 도대체 무엇을 말하는 것인가?

 

  • 초기화는 NULL값을 임의의 값으로 처음 지정해주는 것을 말한다.
  • 변수이름 = 내용물;
  • number = 100;

즉, number라는 변수에 100을 처음으로 저장해주는 것을 초기화라고 부르는 것이다. 이 초기화하는 과정은 이후에도 다시 적용할 수 있으며, 이를 초기화한다고 하지 않고 변수에 값을 저장한다라고 표현한다. 정리하자면.

 

  • 변수는 선언을 하면 처음에는 값이 정해지지 않은 상태이다.
  • 변수에는 언제든 값을 저장할수 있다.
  • 이 값을 저장하는 행동은 몇번이고 반복할수있다.
  • 최초로 값을 저장하는 행위를 변수를 초기화한다. 라고 표현한다.
  • 변수를 선언하면, 초기화는 꼭 해주자.

 

보통은 초기화는 변수의 선언과 동시에 많이 사용하며 그럴때는 아래와 같은 형식을 따른다.

 

  • 변수타입 + 변수이름 + 내용물 + ;
  • int number = 100;

이러한 형식을 변수선언과 함께 초기화한다. 라고 표현하기도 한다.

 

아래 코드를 작성해서 빌드하고 눈으로 직접 확인해보기를 바란다.

 

#include <stdio.h>

int main() {

    int number;
    int number2 = 100;

    printf("number = %d, number2 = %d \n", number, number2);

    nunber = 200;

    printf("number = %d, number2 = %d \n", number, number2);

    number2 = 500;

    printf("number = %d, number2 = %d \n", number, number2);
    
    return 0;
}

 

차이가 확인이 되는가?

이 코드가 무엇을 전달하고자 했는지 의미를 모르겠다면 이 글을 위에서 다시한번 살펴보기를 바란다.

'C언어 > 문법' 카테고리의 다른 글

1. 맛보기 - hello, world 출력하기(Visual Studio 2019)  (0) 2019.09.27

C언어 문법을 공부하기에 앞서 맛보기이자 누구나 처음으로 다루는 hello, world를 작성해 보겠다.

IDE는 Visual Studio 2019 커뮤니티를 사용하였고, 다른 컴파일러를 사용해도 정상적인 컴파일 환경과, 코드만 갖춰진다면 동일한 결과를 얻을 수 있으니 참고하자.

비쥬얼 스튜디오 2019를 설치하였다면, 실행시 다음과 같은 화면이 뜨게 된다.

여기서 새 프로젝트 만들기를 클릭한다.

hello, world 프로젝트 만들기 화면1

새 프로젝트 만들기 대화 상자에서 검색창에 Windows 데스크톱 마법사 중 Windows, 데스크톱 등의 단어위주로 검색을 하고,

hello, world 프로젝트 만들기 화면2

아래처럼 목록에서 Windows 데스크톱 마법사를 찾아서 클릭 후 다음을 누른다.

hello, world 프로젝트 만들기 화면3

이제 프로젝트가 위치할 디렉토리 패스와 프로젝트 이름을 설정한다. 여기서 주의할 점이 있는데,

  • 특수문자는 '-', '_' 외에는 사용하지 않도록 한다. 이외의 특수문자는 차후 컴파일시 오류의 원인이 된다.
  • 프로젝트 이름에는 공백문자를 포함하지 않는다. 마찬가지로 컴파일 오류의 원인이 된다.

위 사항을 지키면서 프로젝트 이름을 설정한다. 다음으로 만들기를 누른다.

hello, world 프로젝트 만들기 화면4

그럼 아래와 같은 대화상자가 뜨는데, 아래와 같이 콘솔 애플리케이션, 빈 프로젝트를 선택하도록 하자

여기서 콘솔 애플리케이션은 터미널 환경. 즉, 예전 컴퓨터 처럼 텍스트 기반(콘솔 기반)의 프로그램을 만들겠다는 의미이고, hello, world를 출력하기 위해 특별히 다른 프로그램이 필요한게 아니기 때문에 빈 프로젝트를 만든다.

hello, world 프로젝트 만들기 화면5

그럼 아래와 같이 프로젝트 생성중이라는 대화상자가 잠시 뜬 후,

hello, world 프로젝트 만들기 화면6

프로젝트가 생성된다. 이곳에서 오른쪽에 보면 솔루션 탐색기가 있는데 이걸 클릭해준다.

hello, world 프로젝트에 소스코드 추가하기1

그러면 비쥬얼 스튜디오 2019가 자동으로 생성한 프로젝트 구조가 보인다. 이제, 소스코드를 추가할텐데, 각자 만든 프로젝트 이름에서 마우스 우클릭을 하면,

hello, world 프로젝트에 소스코드 추가하기2

아래처럼 여러 메뉴들이 보일 것이다. 여기서 추가 메뉴를 눌러준다.

hello, world 프로젝트에 소스코드 추가하기3

새 항목을 클릭하고,

hello, world 프로젝트에 소스코드 추가하기4

아래 대화상자에서 C++ 파일을 선택한다.

그 다음으로 소스파일 이름을 설정할 텐데, 여기서 중요한 것이 있다. 아마 처음에는 이름이 소스.cpp 이런식으로 되어 있을건데, .cpp 는 C언어 소스파일이 아니라 C++(C plus plus -> cpp) 파일을 의미한다. 우리는 C언어 소스코드를 만들 것이므로 'hello_world.c' 와 같은 이름으로 코드를 만들어야 한다. 다 되었다면 추가 버튼을 누르자.

hello, world 프로젝트에 소스코드 추가하기5

아래처럼 아까는 보이지 않았던 소스코드가 생성되었다. 이제 이곳에 소스코드를 작성하면 된다.

hello, world 소스코드 추가완료 화면

코드는 아래와 같이 작성하면 된다.

#include <stdio.h>

int main() {

    printf("hello, world!!!");
    
    return 0;
    
}

소스코드를 자세히 알 필요는 없지만 혹시나 왜 저런 코드를 사용하였는지 궁금하다면 간략하게 설명을 하겠다.

 

#include <stdio.h> 는 일종의 약속이다. 여기서는 stdio.h 라는 파일을 참고하겠다 라는 의미인데, 여기서 stdio.h는 standard I/O header파일을 의미한다. 즉, 표준(standard) 입출력(input, output) 머리(header) 그러니까 입력하고 출력하기 위한 파일들의 요약(?)본을 참고하겠다는 의미를 하고 있는 것이다.

 

int main() { . . . } 부분이 C언어에서 일종의 약속된 코드인데 이부분을 실행하도록 약속이 되어있다. 자세한 이유는 더 낮은 레벨에서 설명해야 하는데 지금으로써는 너무 어려운 설명이 될 것이기에 차후에 설명하겠다. 지금은 main() 이 C코드에는 무조건 있고, 이부분부터 시작한다고 보면 된다.

 

printf("hello, world!!!");  이 부분이 실행할 프로그램에서 유일하게 무언가 실질적인 일을 하는 부분이다. 여기서 printf는 "" 안에 있는 문자열을 콜솔창에 출력하겠다 라는 의미의 함수이다.

 

return 0; 메인함수가 이 메인함수를 호출한 프로그램(콘솔)에게 "나 정상적으로 프로그램 실행되었어!!" 라고 알려주는 부분이 되겠다.

 

그럼 아래와 같이 소스코드를 작성하고, 메뉴에 있는 "로컬 Windows 디버거" 를 클릭하면,

hello, world 소스코드 빌드 및 실행하기1

아래처럼 자동으로 컴파일 및 링크작업을 하게되는데 이를 통틀어서 보통 프로그램을 빌드한다 라고 표현한다.

컴파일과 링크의 의미는 차후 설명하도록 하겠다.

hello, world 소스코드 빌드 및 실행하기2

잠시 후 콘솔창이 뜨며 아래와 같이 hello, world!!! 를 출력하는 프로그램을 만나볼 수 있게 된다.

hello, world 소스코드 빌드 및 실행하기3

비록 보잘것 없고 간단한 프로그램이지만 맛보기로는 더할나위 없는 소스코드이다. 다음부터는 본격적으로 C언어의 문법을 다루도록 하겠다.

'C언어 > 문법' 카테고리의 다른 글

2. 변수(variable) 의 의미, 선언과 초기화, 저장  (1) 2019.09.28

오늘은 저번시간에 진행하였던 VScode기반 C,C++ 컴파일환경 구현에 이어 디버깅 환경을 구현하도록 하겠습니다.


만약 VScode에서 C,C++ 컴파일 환경을 구현하지 않았다면 다음 링크를 통해 먼저 컴파일 환경을 구현 후 오시기 바랍니다.


2018/12/26 - [C언어/C언어 개발환경 구축] - 우분투 리눅스에서 VScode설치, C,C++코딩을 위한 환경설정하기



컴파일 환경까지 구현하셨다면 이제 디버깅을 구현하여야 하는데요, 디버깅이 무엇인지 왜 필요한지 모르신다면 "나중을 위해 환경을 설정해둔다."

이정도로만 알고 따라하셔도 무방합니다.


1. 컴파일 환경 구현때 설정한 task.json 파일을 일부 수정한다.

-- 컴파일환경을 제 블로그를 참고하여 구현하셨다면 파일탐색창에서 .VScode폴더안에 tasks.json 파일이 생성되어 있고 위 스크린샷과 같이 설정이 되어 있을 겁니다.


하지만 자세히 살펴보면 마냥 같지는 않고 조금 다른점을 볼 수 있는데요.

//C++ 컴파일
{
"label": "save and compile for C++",
"command": "g++",
"args": [
"-g3",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": "build",

이부분과

//C 컴파일
{
"label": "save and compile for C",
"command": "gcc",
"args": [
"-g3",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": "build",

이부분이 조금 다를 겁니다.

디버깅을 위해서는 컴파일을 실행할 당시에 디버깅 정보를 포함하여 주어야 하는데요, 이 컴파일정보를 포함하는 옵션을 g++과 gcc에 추가로 주기 위하여


"-g3"


이걸 "args": [ 

"이부분에 삽입합니다.",

"${file}",

"-o",

...

이런 형식으로 추가하여 주어야 합니다.

만약 찾아서 직접 수정하기 힘드시다면 그냥 아래 코드를 통째로 복사하셔서 tasks.json파일에 덮어쓰셔도 상관없습니다.

{
"version": "2.0.0",
"runner": "terminal",
"type": "shell",
"echoCommand": true,
"presentation" : { "reveal": "always" },
"tasks": [
//C++ 컴파일
{
"label": "save and compile for C++",
"command": "g++",
"args": [
"-g3",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": "build",



"problemMatcher": {
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
//C 컴파일
{
"label": "save and compile for C",
"command": "gcc",
"args": [
"-g3",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": "build",



"problemMatcher": {
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},

{

"label": "execute",

"command": "cd ${fileDirname} && ./${fileBasenameNoExtension}",

"group": "test"

}
]
}


코드 작성이 끝나셨으면 Ctrl + S 키를 통해 저장을 하시고,


2. 위와같이 Ctrl + Shift + D 혹은 왼쪽상단의 거미모양 아이콘을 눌러서 디버그 모드로 들어갑니다.



여기서 좌측상단에 보면 초록색 재생버튼이 보입니다. 이걸 클릭해주면 위 사진처럼 어떤 디버그 환경을 구현할지 설정하는 화면이 나옵니다. 여기서는 C와 C++을 디버깅 할 것이므로 해당하는 디버거인 GDB/LLDB 를 선택합니다.


여기까지 진행하면,



위 스크린 샷 처럼 launch.json 이 생성됩니다.


만약 코드가 아래와 같다면 그대로 두셔도 상관 없습니다만, 만약 다르다면 아래코드를 launch.json 내용물에 그대로 덮어쓰시면 됩니다.

{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}


사실 여기까지 하셨다면 디버깅환경 구현은 끝난 셈입니다. 한번 확인해볼까요?


#include <stdio.h>

int main() {

int a = 0, b = 0;

a = 10;
b = 20;

printf("%d\t%d\n",a,b);
}


3. 제일먼저 위 코드를 샘플파일로 아래와 같이 파일을 하나 만들고 입력합니다.



여기서 코드를 작성한 내용물 왼쪽에 보면 행(라인)마다 숫자가 붙어 있는 것이 보일 겁니다.

그 왼쪽에 마우스 커서를 올리면,



이렇게 빨간 동그라미가 희미하게 나타납니다. 이걸 클릭해주면 동그라미 색이 진하게 나타나고 마우스 커서를 치워도 그대로 남아있게 됩니다.

이걸 브레이크포인트 라고 부릅니다.

디버깅 환경에서 테스트를 할 때 정지해서 그때 그때 변수값이나 상태를 체크하는 지점을 설정해주는 것입니다.


4. 저는 아래와같이 4개의 브레이크포인트를 생성하였습니다.



이제 컴파일을 진행하여 주세요. 컴파일을 어떻게 해야 할 지 모르신다면 상단에 있는 링크를 통해 전에 포스팅한 컴파일 방법을 다시한번 살펴보시기 바랍니다.



위 사진처럼 정상적으로 컴파일이 되지 않고 에러 메시지가 뜬다면 launch.json 파일과 task.json 파일 수정부분을 다시한번 찬찬히 읽어보시기 바랍니다.


여기까지 진행이 완료되었다면 디버깅을 진행하는데요, 디버깅은 저번 포스팅에서 설정한 실행 커멘드를 통해서 실행하지 않고 


1.F5 키를 누르거나,

2.Ctrl + Shift + D 혹은 왼쪽 상단의 거미모양 아이콘 선택 후 위쪽에 초록색 재생버튼 클릭


이 두가지 방법을 이용해서 실행이 가능합니다.


그럼 아래같은 화면이 나옵니다.



이제 상단에 새로 생긴 디버그컨트롤러 창을 통해 아래처럼 브레이크포인트를 한번씩 이동하며 변수의 변화를 볼 수 있고,

 조사식이나 스택상태등 상당히 강력한 디버깅을 할 수 있게 되었습니다.



여기까지 따라오시느라 고생이 많으셨습니다. 다음시간부터는 본격적으로 C언어를 탐구하여 보도록 하겠습니다.

C언어 코딩을 위한 컴파일러중 가장 대표적인 코딩툴로 손꼽히는 비쥬얼 스튜디오,

이 툴은 안되는 것이 없다는 강력함을 가졌으면서도 

윈도우에서만 설치가 가능하고 우분투와 같은 리눅스, MAC OS에서는 설치가 불가능 하다는 최대 단점을 가지고 있었습니다.


막상 개발을 업으로 하고 있는 개발 전문가들 중 상당수는 윈도우가 아닌 리눅스나 MAC OS 에서 프로그래밍을 하고 있는데도 말이지요.


그래서 윈도우가 야심차게 내 놓은 무료 범용 코딩 툴이 있습니다.


우리는 이 VScode를 설치하고 샘플코드를 컴파일하여 실행이 되는 환경까지 확인하도록 하겠습니다.


해당포스팅은 Ubuntu 18.04 LTS를 기반으로 작성되었습니다.


1.컴파일 설치


C언어 개발을 위해서는 코딩 툴도 필요하지만 가장 기본적으로 컴파일러가 필요합니다.

컴파일러라 함은 C언어와 같은 고급언어를 저급언어, 즉, 바이너리 코드로 변환을 해 주는 프로그램을 뜻 합니다.


아무리 C언어 툴을 설치하고 C언어를 작성하더라도 이 컴파일러가 없으면 컴퓨터가 이해할 수 있는 언어로 변환이 불가능합니다.


리눅스에서는 이 컴파일러를 명령어 한줄로 설치가 가능합니다.

sudo apt-get install build-essential


위와 같이 설치할 패키지 명이 주르륵 보여지고 설치를 진행 할 것인지 물어보는데요, y를 입력하여 설치를 진행합니다.



그럼 이처럼 설치가 자동으로 진행이 됩니다. 다시 커멘드커서가 뜰 때 까지 기다려주신 후 아래 창을 입력하여 정상적으로 gcc가 설치되었는지 확인하여 줍니다.


gcc --help



위 사진처럼 gcc 옵션에 대한 설명이 뜬다면 정상적으로 컴파일러 설치가 완료되었다고 보셔도 무방합니다.


2. VScode 설치하기


마찬가지로 우분투에서는 굳이 홈페이지에 들어갈 필요 없이 터미널 환경에서 명령 몇줄로 설치가 가능합니다.

아래 명령을 순차적으로 따라하시면 큰 무리없이 VScode 설치가 가능합니다.


--MS의 GPG를 다운받기 위해 curl 패키지를 설치합니다.


sudo apt-get install curl


--마이크로소프트사의 GPG키를 내려받아 /etc/apt/trusted.gpg.d/ 경로에 복사합니다.


sudo sh -c 'curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg'


--VScode를 다운로드 받기 위한 저장소를 /etc/apt/sources.list.d/ 경로에 추가합니다.


sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'


--저장소 정보가 추가되었으므로 패키지 목록을 업데이트 하여 줍니다.


sudo apt-get update


--apt-get install을 통해서 VScode를 설치합니다.


sudo apt-get install code


--설치가 완료되었다면 추가하였던 저장소를 삭제합니다.


sudo rm /etc/apt/sources.list.d/vscode.list


--정상적으로 설치가 완료되면 바탕화면 아이콘 모음에 VScode아이콘이 생성된 것을 볼 수 있습니다.




3.VScode 언어 환경설정 하기


VScode를 처음 실행하면 아래처럼 온통 영어로 도배된 것을 볼 수 있습니다만, 간단한 설정으로 한국어 언어팩을 적용 할 수 있습니다.

만약 영어환경에서의 코딩을 원하시면 언어설정은 패스하셔도 무방합니다.


--VScode 첫 실행시 화면


--Ctrl+Shift+X 키를 눌러서 확장 플러그인 검색창을 띄우고 korea 입력후 Korean Language Pack for Visual Studio Code 플러그인을 설치


--플러그인이 설치되면 우측하단에 재시작을 묻는 창이 뜰겁니다. 이를 눌러서 재시작을 하여도 되고 그냥 VScode를 종료후 재시작을 하여도 됩니다.


--그럼 자동으로 한국어로 변경된 VScode를 볼 수 있습니다.


4. VScode 컴파일을 위한 컴파일러 연동 설정하기


VScode는 기본적으로 폴더를 기반으로 실행이 됩니다. 

그래서 새로운 프로젝트를 만들고 폴더를 새로 생성한다면 아래 내용이 필수적이므로 잘 보고 숙지하시는게 좋습니다.


4-1. C,C++ 컴파일을 위한 확장 플러그인 설치 및 json파일 설정


--Ctrl+Shift+X 를 눌러 확장플러그인검색창에 C 입력후 아래 플러그인 설치


--Ctrl + Shift + E 를 눌러 탐색기창을 연 후 VScode 프로젝트를 구성할 폴더를 지정하여 줍니다.저의 경우 /home/park/VScode 폴더를 생성하여 지정하였습니다.


--이어서 왼쪽상단에 설정한 폴더이름 위에 마우스 커서를 올리면 나오는 메뉴중 가장 왼쪽 메뉴를 눌러서 파일을 하나 생성합니다. 저는 hello.c 를 생성하였습니다.


--생성이 완료되면 우측에 에디터 창이 생성이 되는데요. 여기에 샘플파일로 쓸 코드를 입력하여 줍니다. 코드는 아래와 같습니다. 이후 Ctrl + S 로 저장해주세요.

#include <stdio.h>

int main() {

printf("hello\n");

return 0;
}


--Code의 메뉴화면 중 터미널 - 기본빌드 작업구성을 선택합니다.


--템플릿에서 tasks.json 파일 만들기 를 선택합니다.


-- Other 임의의 외부 명령을 실행하는 예를 선택합니다.


--이제 아래처럼 생성된 json파일이 보일겁니다.


이 코드를 아래코드로 통째로 바꿔줍니다.


{
"version": "2.0.0",
"runner": "terminal",
"type": "shell",
"echoCommand": true,
"presentation" : { "reveal": "always" },
"tasks": [
//C++
{
"label": "save and compile for C++",
"command": "g++",
"args": [
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": "build",



"problemMatcher": {
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
//C
{
"label": "save and compile for C",
"command": "gcc",
"args": [
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": "build",


"problemMatcher": {
"fileLocation": [
"relative",
"${workspaceRoot}"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},

{

"label": "execute",

"command": "cd ${fileDirname} && ./${fileBasenameNoExtension}",

"group": "test"

}
]
}


4-2. 컴파일 및 실행 단축기 설정


--Code 상단 메뉴에서 파일 - 기본 설정 - 바로 가기 키 를 선택합니다. 혹은 Ctrl + K , Ctrl + S 를 순차적으로 눌러주셔도 바로가기 키 설정화면으로 넘어갑니다.


--상단에 있는 keybindings.json 을 선택합니다.


--아래코드를 아래처럼 통째로 복사해서 생성된 우측 에디터창에 넣어줍니다. 이후 Ctrl + S로 저장해줍시다.

--따로 원하시는 키가 있다면 꼭 아래 키가 아니더라도 원하는 키 조합을 "key" : "이부분"  에 입력하면 되니 참고해주세요.

[
//컴파일
{ "key": "ctrl+shift+1", "command": "workbench.action.tasks.build" },
//실행
{ "key": "ctrl+shift+2", "command": "workbench.action.tasks.test" }
]



이제 초반에 만들었던 hello.c를 다시 열어줍니다.

왼쪽 그림메뉴에 있는 파일아이콘을 눌러도 되고 혹은 Ctrl + Shift + E 를 누른 후 나오는 탐색창에서 미리 만들어둔 hello.c를 더블클릭하시면 됩니다.


방금전 설정한 컴파일 단축키를 눌러봅시다.

저의 경우 Ctrl + Shift + 1 이었습니다.

위처럼 save and compile for C 와save and compile for C++ 이 보이실 텐데요, 지금은 C 를 컴파일 할 것이므로 save and compile for C를 선택합니다.


아래화면에서 아래부분에 나오는 터미널 화면처럼 나와야 정상적으로 컴파일이 완료된 것입니다.

만약 이렇게 나오지 않는다면 다시 위에서부터 하나하나 확인하며 체크해 보시기 바랍니다.



이제 실행을 해봐야겠지요?


실행 단축기를 눌러주세요.

저의 경우 Ctrl + Shift + 2 를 설정하였습니다.

위처럼 excute가 뜰텐데요. 해당 문장을 클릭하셔도 되고 그냥 엔터를 치셔도 됩니다.


그러면 아래처럼 실행된 파일이 나올겁니다.

여기까지 문제없이 따라오셨다면 C언어를 위한 기본적인 설정은 완료된 것입니다.


VScode는 초기설정은 다른 코딩툴에 비해 까다로우나 넓은 확장성과 깔끔한 UI로 앞으로의 발전이 기대되는 툴입니다.

비주얼 스튜디오를 사용하고 싶으나 리눅스 환경이라서 사용 못하신 분들께서는 꼭 한번 설치하여 실행하여 보시길 바랍니다.


다음시간에는 VScode 디버깅을 위한 추가설정을 하도록 하겠습니다.

+ Recent posts