이 오류는 정수, 실수 등 단일 값을 가지는 스칼라(scalar) 변수에 중괄호({}
)를 사용하여 초기화했을 때 발생합니다. C언어에서는 스칼라형 변수(int, float 등)의 초기화는 단순히 대입 연산자와 함께 값을 직접 지정해야 하며, 중괄호는 배열이나 구조체와 같은 복합형 자료에 사용됩니다.
이 오류는 보통 배열이나 구조체 초기화 패턴을 그대로 단일 변수에 적용했을 때 나타납니다.
● 오류 예제
#include <stdio.h>
int main() {
int x = {10}; // 오류: 스칼라형 초기화에 중괄호 사용
printf("%d\n", x);
return 0;
}
컴파일 시 다음과 같은 오류 메시지가 출력될 수 있습니다.
error: braces around scalar initializer
● 해결 방법
스칼라 타입 변수는 중괄호 없이 값만 할당하여 초기화해야 합니다. 다음은 올바른 초기화 예시입니다.
#include <stdio.h>
int main() {
int x = 10; // 정상적인 스칼라형 초기화
printf("%d\n", x);
return 0;
}
출력 결과:
10
● 실전 팁
- 스칼라형 변수 초기화에는 중괄호를 사용하지 마세요.
- 중괄호는 배열, 구조체 등 복합형 타입에서 사용됩니다.
- 문법은 간단하지만, 초기화 문법의 차이를 구분하는 것이 중요합니다.
C언어는 자료형마다 초기화 방식이 엄격하게 다르므로, 스칼라형 초기화 시에는 항상 중괄호 없이 직접 값을 할당하는 방식으로 작성해야 합니다.