C++에서 공백(Whitespace)이란?
공백(Whitespace)은 코드의 서식을 지정하기 위해 사용되는 문자들을 가리키는 용어입니다. C++에서 공백은 주로 스페이스(space), 탭(tab), 그리고 경우에 따라서는 줄바꿈(newline)을 의미합니다.
C++ 컴파일러는 몇 가지 사소한 예외를 제외하면 일반적으로 공백을 무시합니다. 따라서 공백이 얼마나 많거나 적게 들어가더라도 프로그램의 실행 결과에는 영향을 주지 않습니다.
컴파일러가 공백을 무시하는 예
예를 들어, 아래의 4줄은 모두 동일한 의미를 갖습니다.
cout<<"Hello"; cout << "Hello"; cout << "Hello" ; cout << "Hello";
이처럼 연산자와 피연산자 사이의 공백 배치는 자유롭지만, 가독성을 위해 일관된 스타일을 유지하는 것이 좋습니다.
공백이 무시되지 않는 예외 경우
1. 문자열 리터럴 내부
C++ 컴파일러가 공백을 실제로 고려하는 첫 번째 경우는 따옴표(" ") 안쪽입니다. 문자열 안에 포함된 공백은 그대로 문자열의 일부로 취급됩니다.
"Hello world!" "Hello world!"
위 두 문자열은 서로 다른 문자열입니다. 두 번째 문자열에는 단어 사이에 여러 개의 공백이 포함되어 있기 때문입니다.
2. 다중 문자 연산자
두 번째 예외는 여러 문자로 구성된 연산자입니다. 복합 대입 연산자나 스트림 삽입 연산자처럼 두 개 이상의 문자로 이루어진 연산자는 중간에 공백을 넣을 수 없습니다.
<<와< <는 서로 다른 표현입니다.+=와+ =역시 서로 다르며, 후자는 유효한 표현식이 아닙니다.
즉, a += b는 올바른 코드이지만 a + = b는 컴파일 오류를 발생시킵니다.
정리
C++에서 공백은 대부분 무시되므로 코드 작성 시 유연하게 사용할 수 있지만, 문자열 내부의 공백과 다중 문자 연산자 사이의 공백은 주의해야 합니다. 특히 연산자 사이에 불필요한 공백을 넣으면 문법 오류가 발생할 수 있으므로, 항상 올바른 형태로 작성하는 습관이 중요합니다.