본문 바로가기
프로그래밍언어/C언어[Error]

[C언어][Error] 104. braces around scalar initializer – 스칼라 초기화에 중괄호 사용

by about_IT 2025. 5. 10.

이 오류는 정수, 실수 등 단일 값을 가지는 스칼라(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언어는 자료형마다 초기화 방식이 엄격하게 다르므로, 스칼라형 초기화 시에는 항상 중괄호 없이 직접 값을 할당하는 방식으로 작성해야 합니다.