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