C/본수업

[2025.03.10] Ch.02_C 첫걸음

polibo 2025. 3. 10. 19:09
학습목표
· 연산자 : =
· 함수 : main(), printf()
· 간단한 C 프로그램 작성하기
· 정수값을 넣는 변수 만들기, 변수에 값 대입하기, 화면에 값 출력하기
· 개행 문자
· 프로그램에 주석 달기, 함수를 여러 개 사용하는 프로그램 작성하기, 프로그램에서 에러 찾기
· 키워드

 

학습목표에 나와있는 내용을 정확하게 알지 못하면 다음 챕터로 넘어가기 금지!!!!

 

아직 함수는 배우지 않았기 때문에, 함수관련 내용은 우선 SKIP~!~!


 

[간단한 C 예제 프로그램]

// #include : C 전처리기 지시자, 일반적으로 C 컴파일러는 컴파일하기 전에 소스 코드를 대상으로 몇 가지 사전 작업 실시
// stdio.h : standard input/ouput header, printf()와 같은 입출력 함수에 대한 정보가 들어있음.
#include <stdio.h> 

// main()은 반드시 있어야 함.
// int는 main()이 반환할 수 있는 값의 종류가 하나의 정수라는 것을 의미(운영체제로 반환한다함,,아직 잘 모르는 내용!)
int main()
{
    // 변수 선언, 정수형 변수 num을 선언함.
    // 컴파일러는 num 변수를 저장할 적당한 메모리 공간을 할당하는 데 이 정보를 사용함.
    // [중요] 모든 변수들은 사용하기 전 미리 선언해야 함.
    int num;
    num = 1; // 변수 num을 1로 초기화

    // printf() : 큰 따옴표("") 안에 있는 문자열을 출력해줌.
    printf("나는 단순한 "); 
    printf("컴퓨터이다.\n"); // \n : 한줄 enter
    // %는 %가 있는 위치에 변수를 출력하라고 프로그램한테 알림.
    // d는 그 변수를 10진수 정수로 출력하라고 알림.
    // 여기서는 %d 자리에 num을 출력함 ==> 1
    printf("나는 최고를 원하기 때문에 %d이라는 수를 좋아한다.\n", num);

    // 프로그램이 }에 도달했을 때, 0 반환
    return 0;
}

 

 

 

[디버깅]

★ 신택스 에러 (syntax error)

  • C의 규칙을 따르지 않을 때 발생
  • ex)
    • 중괄호{} 대신 소괄호() 사용
    • 주석 표시할 때 /* */ 쌍을 맞추지 않고, 빼먹었을 때
    • 문장 끝의 세미콜론(;)이 빠졌을 때 등

 

 

★시맨틱 에러 (semantic error)

  • 시맨틱 에러는 C의 규칙을 어겨서 발생하는 에러가 아님!!! 
  • 따라서, 컴파일러는 시맨틱 에러를 찾지 못함. (C의 규칙을 어기지 않았기 때문)
  • 시맨틱 에러를 찾는 것은 전적으로 프로그래머의 몫!!
  • ex)
    • n = 5;
    • n2 = n * n;
    • n3 = n2 * n2;
    • printf("n = %d\n, n의 제곱 = %d, n의 세제곱 = %d\n", n, n2, n3);
    • n3는 n의 세제곱 값이 아님!! 

 

 

[키워드와 예약된 식별자]

  • 키워드는 변수 이름으로 사용XXXXX ==> 신택스 에러
ISO C 키워드
auto extern short while
break float signed _Alignas
case for sizeof _Alignof
char goto static _Bool
const if struct _Complex
continue inline switch _Generic
default int typedef _Imaginary
do long union _Noreturn
double register unsigned _Static_assert
else restrict void #_Thread_local
enum return volatile