본문 바로가기

컴퓨터 관련/문제해결

warning: format ‘???’ expects argument of type ‘???’, but argument ? has type ‘__off_t {aka ????}’ [-Wformat=] 해결 방법

728x90
반응형

1. 원인

  • 이 문제가 발생하는 것은 함수의 인자로 넘겨주는 자료형이 일치하지 않아서 발생하는 문제다.
    • 아래 예시의 경우, off_t형 (a.k.a. long int)인데, 넘겨주는 함수의 인자가 %d로, 함수가 10진수 정수를 받기 때문에 문제가 발생하고 있다.
warning: format %d expects argument of type int, but argument 2 has type __off_t {aka long int} [-format=]

2. 해결 방안

  • 받는 함수의 매개 변수를 "expects argument of type"에 맞춰 지정해야 한다.
    • 위 예시로 본다면, 매개변수를 long int가 되게 하거나, 넘기는 함수의 인자를 long int형으로 넘겨야 한다.

3. 추가 사항

  • 다음의 경우는 어떤 문제가 생겼을까? 위의 경우와 매우 유사하니 쉽게 유추할 수 있으리라 생각한다.
warning: format %d expects argument of type int, but argument 2 has type __blkcnt_t {aka long int} [-format=]
반응형