프로그래밍언어/C언어[Error]
[C언어][Error] 089. qualifier on function type ignored – 함수 반환 타입 수식자 무시됨
about_IT
2025. 5. 4. 18:56
이 오류는 함수의 반환 타입에 const
, volatile
등의 수식자(qualifier)를 붙였을 때, 컴파일러가 이를 무시한다는 경고 또는 오류 메시지를 출력하는 경우입니다. C언어에서는 함수가 값을 반환할 때 수식자는 실제로 의미를 가지지 않기 때문에, 이러한 선언은 잘못된 것으로 간주됩니다.
즉, const int func()
와 int func()
는 반환값의 성질이 동일하며, 반환되는 값 자체는 복사되기 때문에 const
는 무의미하게 처리됩니다.
● 오류 예제
const int getValue() {
return 10;
}
컴파일 시 다음과 같은 경고 메시지가 출력될 수 있습니다.
warning: type qualifiers ignored on function return type
● 해결 방법
반환 타입에 const
나 volatile
수식자는 제거해야 하며, 필요한 경우 포인터 반환에서만 사용해야 합니다.
int getValue() {
return 10; // const 제거
}
또는 포인터 반환 시에는 다음과 같이 const
가 유효합니다.
const int* getConstPtr() {
static int x = 10;
return &x;
}
● 실전 팁
- 함수의 반환 타입에
const
를 붙여도 의미가 없으며, 경고를 유발할 수 있습니다. - 포인터 반환 시에만 수식자가 의미를 가집니다 (
const int*
등). - 컴파일러 경고는 무시하지 말고, 항상 의미를 다시 점검하여 코드 품질을 유지하세요.
C언어에서는 반환 타입에 수식자를 붙이는 것이 특별한 의미를 가지지 않으며, 잘못된 스타일로 판단될 수 있으므로 반드시 함수 선언에서는 문법적 유효성을 확인해야 합니다.