영어로 읽기

다음을 통해 공유


경고 C28208

함수 function_name 이전에 file_name(line_number)에서 다른 매개 변수 목록으로 정의되었습니다. 일부 분석 도구는 잘못된 결과를 생성합니다.

설명

이 경고는 거의 항상 컴파일러 경고(수준 1) C4028과 함께 제공됩니다. 둘 다 함수 선언의 매개 변수와 해당 정의가 일치하지 않음을 경고합니다. 그러나 이 특정 오류는 C4028보다 더 많은 틈새 사례를 나타냅니다. C28208은 불일치가 있을 뿐만 아니라 분석 도구에 문제가 발생할 수도 있음을 나타냅니다. 이 경고는 함수 포인터와 해당 함수의 정의 간에 typedef 불일치가 있을 때 특히 발생합니다. 이 경고는 아래 예제에서 설명합니다.

코드 분석 이름: FUNCTION_TYPE_REDECLARATION

예시

다음 코드는 C28208을 생성합니다. test_typemy_test1 매개 변수를 선언하고 my_test2 매개 변수를 void* 취하지만 대신 매개 변수를 my_test1 int* 사용합니다. my_test2 정의 매개 변수가 선언 매개 변수와 일치하기 때문에 이 문제를 방지합니다.

// c28208_example.h
typedef void test_type(void*);