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

[C언어][Error] 101. invalid suffix on integer constant – 정수 상수에 잘못된 접미사

by about_IT 2025. 5. 10.
728x90

이 오류는 정수 상수를 작성할 때 존재하지 않는 접미사(suffix)를 붙였을 경우 발생합니다. C언어에서는 정수 상수 뒤에 사용할 수 있는 접미사는 U (unsigned), L (long), UL, LL (long long) 등이 있습니다. 이 외의 잘못된 조합이나 문자가 뒤에 붙으면 컴파일러는 오류로 인식합니다.

 

예를 들어 100Z와 같이 Z는 유효한 접미사가 아니므로 오류가 발생하게 됩니다.

 


● 오류 예제

#include <stdio.h>

int main() {
    int x = 100Z;  // 오류: 잘못된 접미사 Z
    return 0;
}

컴파일 시 다음과 같은 오류 메시지가 출력됩니다.

error: invalid suffix "Z" on integer constant

 


● 해결 방법

정수 상수를 사용할 때는 표준에 정의된 접미사만 사용해야 하며, 숫자 뒤에 알 수 없는 문자를 붙이지 않아야 합니다. 아래는 올바른 예시입니다.

#include <stdio.h>

int main() {
    unsigned int x = 100U;   // U: unsigned
    long y = 100L;           // L: long
    long long z = 100LL;     // LL: long long
    printf("%u %ld %lld\n", x, y, z);
    return 0;
}

출력 결과:

100 100 100

 


● 실전 팁

  • C에서 정수 상수에 사용할 수 있는 접미사는 U, L, LL입니다.
  • 접미사는 대소문자 구분이 있으며, 순서도 중요합니다 (예: UL 또는 LU).
  • 임의의 문자를 숫자 뒤에 붙이지 않도록 주의하세요.

 

C언어는 숫자 상수의 표현에도 매우 엄격한 규칙을 요구하므로, 잘못된 접미사 하나로도 오류가 발생할 수 있습니다. 항상 접미사는 표준에 맞는 것만 사용하는 습관을 들이세요.

728x90