[This is CS50 2024] After Week1 - C언어 #Debug

moonstrnck·2024년 1월 12일

CS50

목록 보기
1/13


[CS50 Practice - #Debug]

Debug

Learning Goals

  • C 구문에 익숙해지기
  • C 컴파일러 오류 메시지의 의미 알아보기
  • 디버깅 연습하기

Background

프로그램을 작성할 때 발생할 수 있는 오류에는 두 가지 종류가 있습니다. 발생할 수 있는 첫 번째 오류는 구문 오류입니다. 구문상의 오류 외에도 논리적 오류도 있을 수 있는데, 이에 대해서는 곧 살펴보겠습니다.

컴퓨터 과학에서 구문은 컴퓨터가 수행하려는 작업을 이해하는 데 중요합니다. 각 프로그래밍 언어에는 단어와 구두점의 조합을 포함하는 고윻나 구문 규칙이 있습니다.

이 실습은 몇 가지 구문 오류가 있는 배포 코드로 시작됩니다. 아이디어는 프로그램을 컴파일(make)하고, 컴파일러에서 출력되는 다소 비밀스러운 오류 메시지를 해석하는 방법을 배우고, 프로그램을 디버깅하는 것입니다.

Demo

Getting Started

  1. GitHub 계정을 사용하여 cs50.dev에 로그인합니다.
  2. 터미널 창 내부를 클릭하고 cd를 실행합니다.
  3. $ 프롬프트에서 mkdir debug를 입력합니다.
  4. cd debug 를 실행합니다.
  5. 그런 다음 wget https://cdn.cs50.net/2022/fall/labs/1/debug.c를 터미널에 복사하여 붙여넣어 이 실습의 배포 코드를 다운로드하세요.
  6. 이제 make debug를 입력하여 이 프로그램을 컴파일하고 무슨 일이 일어나는지 살펴보세요!
  7. 다음과 같은 오류가 표시될 가능성이 높습니다. debug.c:9:5: 오류: 선언되지 않은 식별자 'name' 사용
  8. 이는 9행의 "선언되지 않은 식별자"와 관련된 오류가 있음을 의미합니다. 이 버그를 수정한 후 다시 컴파일해 보세요. 디버깅은 반복적인 프로세스라는 점을 명심하세요. 오류를 수정하고, 컴파일한 다음, 다른 오류를 수정하고, 다시 컴파일하는 작업을 여러 번 수행해야 할 수도 있습니다!

생각해보기

C(및 다른 프로그래밍 언어)가 구문과 관련하여 왜 그렇게 특정한 규칙을 가지고 있다고 생각하나요?

나의 풀이

// Become familiar wih C syntax
// Learn to debug buggy code

#include <cs50.h>
#include <stdio.h>

int main(void)
{
    // Ask for your name and where live
    string name = get_string("What is your name? ");
    string location = get_string("Where do you live? ");

    // Say hello
    printf("Hello, %s, from %s", name, location);
}

0개의 댓글