Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 닫는 중괄호(}) 뒤에 세미콜론이 꼭 필요한 경우는 언제일까?

C++에서 닫는 중괄호 뒤 세미콜론이 필수인 경우

닫는 중괄호(}) 뒤에 세미콜론이 반드시 필요한 경우는, 해당 중괄호가 선언(declaration)의 끝을 나타낼 때입니다. C++에서는 클래스(class), 구조체(struct), 공용체(union), 열거형(enum) 선언 그리고 초기화(initialization) 문법에서 중괄호가 사용되며, 이러한 선언문의 끝에는 반드시 세미콜론을 붙여야 합니다.

세미콜론이 필요한 예시

class X {};    // struct, union도 동일하게 적용됨
enum Y {};
int z[] = {1, 2};

위 예제처럼 타입을 정의하는 선언문은 컴파일러에게 "여기까지가 하나의 완전한 선언"임을 알려주기 위해 끝에 세미콜론을 요구합니다. 세미콜론을 빠뜨리면 컴파일 오류가 발생하거나, 더 심한 경우 다음 코드 줄과 엮여 원인을 찾기 어려운 에러 메시지가 출력될 수 있으므로 주의해야 합니다.

세미콜론이 선택적인 경우

반면, 세미콜론 자체는 빈 문장(empty statement)으로 취급되기 때문에, 문장(statement)이 허용되는 위치라면 어디든 추가로 붙일 수 있습니다. 따라서 if 문이나 함수 본문의 닫는 중괄호 바로 뒤에 세미콜론을 붙이는 것도 문법적으로는 유효하지만, 그 세미콜론은 해당 중괄호나 제어문과 아무런 관련이 없는 독립된 빈 문장일 뿐입니다.

정리

  • 필수: class, struct, union, enum 선언 및 배열·객체 초기화의 닫는 중괄호 뒤
  • 선택: if, for, while 등 제어문이나 일반 함수 정의의 닫는 중괄호 뒤 (붙여도 무방하지만 의미 없음)

타입 선언 후에는 습관적으로 세미콜론을 붙이고, 불필요한 세미콜론은 가독성을 위해 제거하는 것이 좋은 코딩 스타일입니다.