C 언어
C 프로그램의 최소 구성 단위인 토큰부터 시작해 문장을 이루는 핵심 문법 규칙을 정리합니다.
컴파일러가 인식하는 가장 작은 단위. 5가지 종류:
키워드: 예약어 (int, return, if 등)
식별자: 변수/함수/타입 등 사용자 정의 이름
상수(리터럴): 숫자, 문자, 문자열 상수
문자열 리터럴: "Hello"
기호/연산자: +, -, *, /, ;, {}, () 등
printf("Hello, World!\n");
→ printf ( "Hello, World!\n" ) ; (5개 토큰)
모든 문장(statement) 끝에는 세미콜론 필수
제어문(if, while 등)의 본문이 단일 문장일 때도 필요
블록({ ... }) 끝에는 세미콜론 없음 (단, 구조체/열거형 선언 끝에는 필요)
int x = 10; // 선언 문장
x = x + 1; // 대입 문장
if (x > 0) // 제어문 헤더 (세미콜론 없음)
puts("양수"); // 단일 문장 (세미콜론 있음)
| 종류 | 문법 | 특징 | |||||
|---|---|---|---|---|---|---|---|
| 블록 주석 | /* 내용 */ | 여러 줄 가능, 중첩 불가 | |||||
| 줄 주석 | // 내용 | C99부터 지원, 줄 끝까지 | |||||
| auto | break | case | char | const | continue | default | do |
| double | else | enum | extern | float | for | goto | if |
| int | long | register | return | short | signed | sizeof | static |
| struct | switch | typedef | union | unsigned | void | volatile | while |
| _Alignas | _Alignof | _Atomic | _Bool | ||||
| _Complex | _Generic | _Imaginary | _Noreturn | ||||
| _Static_assert | _Thread_local | ||||||
밑줄 대문자(_Xxx)는 C11/C23 추가 키워드, 사용자 정의 식별자로 사용 금지
스페이스, 탭(\t), 개행(\n), 폼피드, 주석 포함
토큰 간 구분에 필요: int age;에서 int와 age 사이 공백 필수
연산자 주변은 선택적: a=b ↔ a = b (가독성 위해 후자 권장)
빈 줄(공백만 있는 줄)은 컴파일러가 완전히 무시
| 분류 | 예시 | 세미콜론 |
|---|---|---|
| 표현식 문장 | x = 10; func(); i++; | 필수 |
| 복합 문장(블록) | { int x; x=1; } | 불필요 |
| 선언 문장 | int x = 0; double pi = 3.14; | 필수 |
| 제어 문장 | if (x) ... while (x) ... for (...) ... | 본문 문장에 필요 |
| 레이블 문장 | label: stmt case 1: ... default: ... | 해당 문장 규칙 따름 |