전처리 지시자
C 소스 코드에서 #include <stdio.h>와 같은 헤더 파일 포함문은 전처리 지시자입니다. 컴파일러는 소스 코드를 컴파일하기 전에 이러한 지시자를 먼저 처리합니다. stdio.h 헤더는 표준 입출력 함수에 대한 정보를 제공하며, 실제 함수 구현은 라이브러리 파일에 존재합니다. 헤더 파일은 함수 프로토타입, 상수 정의, 매크로 등을 포함하여 컴파일러가 프로그램을 올바르게 조합할 수 있도록 돕습니다.
실인자와 형식인자
함수 호출 시 전달되는 실제 값은 실인자(actual argument)이며, 함수가 전달받은 값을 저장하는 변수는 형식인자(formal parameter)입니다.
int value = 10;
printf("결과 값: %d", value);
이 예제에서 "결과 값: %d" 문자열은 실인자이며, value 변수는 형식인자로 사용됩니다.
함수의 기본 구성
C 함수는 함수 헤더와 함수 본문으로 구성됩니다. 함수 헤더는 반환 타입과 함수 이름, 매개변수를 선언하며, 중괄호 {} 안의 코드 블록이 함수 본문에 해당합니다.
오류 유형 구분
구문 오류(syntax error)는 C 언어 규칙을 위반할 때 발생하며 컴파일러가 감지합니다. 반면 의미적 오류(semantic error)는 논리적 오류로 프로그램 실행 중 잘못된 결과를 초래하며, 컴파일러가 발견하지 못합니다.
키워드와 식별자 규칙
int, if 같은 키워드는 C 언어 예약어로 변수명으로 사용할 수 없습니다. 예약 식별자(reserved identifiers)는 밑줄(_)로 시작하는 이름이나 printf() 같은 표준 라이브러리 함수명을 포함하며, 다른 용도로 사용하면 예기치 않은 동작이 발생할 수 있습니다.
main() 함수 표준
프로그램 진입점인 main() 함수는 표준 형식을 따라야 합니다.
int main(void) // 인자가 없는 표준 형식
int main(int argc, char* argv[]) // 명령행 인자 처리 형식
argc는 인자 개수, argv는 인자 문자열 배열을 저장합니다. void 매개변수 생략은 일부 컴파일러에서 허용되나 이식성을 위해 명시적으로 작성해야 합니다.
변수 선언 규칙
C99 표준 이후 변수 선언은 사용 지점 이전이라면 함수 내 어디서나 가능합니다.
// C99 이상 규칙
void calculate() {
int x = 5;
// 연산 코드
double result;
result = x * 3.14;
}
변수는 사용 전 반드시 선언되어야 하며, 선언 시 메모리 할당과 자료형이 결정됩니다.