프로그래밍언어/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


● 해결 방법

반환 타입에 constvolatile 수식자는 제거해야 하며, 필요한 경우 포인터 반환에서만 사용해야 합니다.

int getValue() {
    return 10;  // const 제거
}

또는 포인터 반환 시에는 다음과 같이 const가 유효합니다.

const int* getConstPtr() {
    static int x = 10;
    return &x;
}


● 실전 팁

  • 함수의 반환 타입에 const를 붙여도 의미가 없으며, 경고를 유발할 수 있습니다.
  • 포인터 반환 시에만 수식자가 의미를 가집니다 (const int* 등).
  • 컴파일러 경고는 무시하지 말고, 항상 의미를 다시 점검하여 코드 품질을 유지하세요.

C언어에서는 반환 타입에 수식자를 붙이는 것이 특별한 의미를 가지지 않으며, 잘못된 스타일로 판단될 수 있으므로 반드시 함수 선언에서는 문법적 유효성을 확인해야 합니다.