다음을 통해 공유


Microsoft C/C++ 컴파일러 경고 C4000~C4199

이 섹션의 문서에서는 Microsoft C/C++ 컴파일러 경고 메시지 C4000~C4199에 대해 설명합니다.

Important

Visual Studio 컴파일러와 빌드 도구는 다양한 종류의 오류와 경고를 보고할 수 있습니다. 빌드 도구에서 오류 또는 경고가 발견된 후, 시도와 코드 의도를 추측하므로 더 많은 문제가 동시에 보고될 수 있습니다. 도구의 추측이 잘못된 경우 이후 오류나 경고를 프로젝트에 적용할 수 없습니다. 프로젝트에서 문제를 수정하는 경우 항상 보고된 첫 번째 오류나 경고에서 시작하고 자주 다시 빌드하십시오. 한 번의 수정으로 인해 이후에 발생하는 많은 오류가 사라질 수 있습니다.

Visual Studio에서 특정 진단 메시지에 대한 도움말을 보려면 출력 창에서 해당 메시지를 선택하고 F1 키를 누릅니다. Visual Studio에서는 해당 오류에 대한 설명서 페이지가 열립니다(있는 경우). 페이지 상단의 검색 도구를 사용하여 특정 오류나 경고에 대한 문서를 찾을 수도 있습니다. 또는 도구별 오류 및 경고 목록을 찾아보고 이 페이지의 목차에 입력합니다.

참고 항목

모든 Visual Studio 오류 또는 경고가 문서화되어 있는 것은 아닙니다. 대부분의 경우 진단 메시지는 사용 가능한 모든 정보를 제공합니다. F1 키를 사용하여 이 페이지를 방문했는데 오류 또는 경고 메시지에 추가 설명이 필요하다고 생각되면 알려 주시기 바랍니다. 이 페이지의 피드백 단추를 사용하여 GitHub에 설명서 문제를 제기할 수 있습니다. 오류나 경고가 잘못되었다고 생각하거나 도구 집합에서 다른 문제를 발견한 경우 Developer Community 사이트에 제품 문제를 보고합니다. IDE 내에서 피드백을 보내고 버그를 입력할 수도 있습니다. Visual Studio에서 메뉴 모음으로 이동하여 도움말 > 피드백 보내기 > 문제 보고를 선택하거나 도움말 > 피드백 보내기 > 제안 보내기를 사용하여 제안 사항을 제출합니다. 컴파일러에서 내보내지 않고 이제 대신 이 페이지로 리디렉션되는 일부 컴파일러 오류 항목이 만들어졌습니다.

Microsoft Learn Q&A 포럼에서 오류 및 경고에 대한 추가 지원을 찾을 수 있습니다. 또는 Visual Studio C++ Developer Community 사이트에서 오류 또는 경고 번호를 검색합니다. Stack Overflow를 검색하여 솔루션을 찾을 수도 있습니다.

추가 도움말 및 커뮤니티 리소스에 대한 링크는 Visual C++ 도움말 및 커뮤니티를 참조하세요.

경고 메시지

Warning 메시지
컴파일러 경고(수준 4, 더 이상 표시되지 않음) C4001 비표준 확장인 '한 줄로 된 주석'을 사용했습니다.
컴파일러 경고(수준 1, 오류) C4002 함수와 유사한 매크로 호출 'identifier'에 대한 인수가 너무 많습니다.
컴파일러 경고(수준 1, 오류) C4003 함수 같은 매크로 호출 'identifier'에 대해 인수가 부족합니다.
컴파일러 경고(수준 1) C4005 'identifier': 매크로 재정의
컴파일러 경고(수준 1) C4006 #undef 식별자가 필요합니다.
컴파일러 경고(수준 3) C4007 '함수': '특성'이어야 함
컴파일러 경고(수준 3) C4008 'function': 'attribute' 특성이 무시됨
컴파일러 경고(수준 1) C4010 한 줄로 된 주석에 줄 연속 문자가 있습니다.
컴파일러 경고(수준 3) C4013 'function'이 정의되지 않았습니다. extern은 int형을 반환하는 것으로 간주합니다.
컴파일러 경고(수준 1) C4015 'identifier': 비트 필드 형식은 정수 계열이어야 합니다.
컴파일러 경고(수준 3) C4018 'expression': 서명된/서명되지 않은 불일치
컴파일러 경고(수준 4) C4019 전역 범위에 빈 문이 있습니다.
컴파일러 경고(수준 1) C4020 'function': 실제 매개 변수가 너무 많습니다.
컴파일러 경고(수준 1) C4022 'function': 실제 매개 변수 'parameter_number'에 대한 포인터 불일치
컴파일러 경고(수준 1) C4023 'function': 기반 포인터가 프로토타입화되지 않은 함수로 전달됨: 매개 변수 'parameter_number'
컴파일러 경고(수준 1) C4024 'function': 형식 및 실제 매개 변수 'parameter_number'에 대한 다양한 형식
컴파일러 경고(수준 1) C4025 'function': 기반 포인터가 가변 인수를 갖는 함수로 전달됨: 매개 변수 'parameter_number'
컴파일러 경고(수준 1) C4026 정식 매개 변수 목록을 사용하여 함수를 선언했습니다.
컴파일러 경고(수준 1) C4027 정식 매개 변수 목록을 사용하지 않고 함수를 선언했습니다.
컴파일러 경고(수준 1) C4028 공식 매개 변수 parameter_number가 선언과 다릅니다.
컴파일러 경고(수준 1) C4029 선언된 정식 매개 변수 목록이 정의와 다릅니다.
컴파일러 경고(수준 1) C4030 첫째 정식 매개 변수 목록이 둘째 목록보다 깁니다.
컴파일러 경고(수준 1) C4031 둘째 정식 매개 변수 목록이 첫째 목록보다 깁니다.
컴파일러 경고(수준 4) C4032 승격될 때 형식 매개 변수 parameter_number 형식이 다릅니다.
컴파일러 경고(수준 1) C4033 'function'은 값을 반환해야 합니다.
컴파일러 경고(수준 1) C4034 sizeof가 0을 반환합니다.
컴파일러 경고(수준 3) C4035 'function': 반환 값 없음
컴파일러 경고(수준 1) C4036 실제 매개 변수로 명명되지 않은 'type'입니다.
컴파일러 경고(수준 1) C4038 'modifier': 잘못된 클래스 한정자
컴파일러 경고(수준 1) C4041 컴파일러 한계 : 브라우저 출력을 종료하고 있습니다.
컴파일러 경고(수준 1) C4042 'identifier': 잘못된 스토리지 클래스가 있습니다.
컴파일러 경고(수준 1) C4045 'array': 배열 범위에 오버플로가 발생했습니다.
컴파일러 경고(수준 1) C4047 'operator' : 'identifier1'의 간접 참조 수준이 'identifier2'와 다릅니다.
컴파일러 경고(수준 1) C4048 다른 배열 아래 첨자: 'identifier1' 및 'identifier2'
컴파일러 경고(수준 1) C4049 컴파일러 한계: 줄 번호 내보내기를 종료하고 있습니다.
컴파일러 경고(수준 1) C4051 형식을 변환하면서 데이터가 손실될 수 있습니다.
컴파일러 경고(수준 1 및 수준 4) C4052 함수 선언이 다릅니다. 한쪽에 가변 인수가 들어 있습니다.
컴파일러 경고(수준 4) C4053 '?:'에 대한 하나의 void 피연산자
컴파일러 경고(수준 1) C4055 'conversion': 'type1' 데이터 포인터에서 'type2' 함수 포인터로 캐스팅되었습니다.
컴파일러 경고(수준 2) C4056 부동 소수점 상수 산술 연산에서 오버플로가 발생했습니다.
컴파일러 경고(수준 4) C4057 'operator': 'identifier1'은 약간 다른 기본 형식에 대한 간접 참조가 'identifier2'와 다릅니다.
컴파일러 경고(수준 3, 해제) C4060 switch문에 'case' 또는 'default' 레이블이 없습니다.
컴파일러 경고(수준 4, 해제) C4061 enum '열거형'의 switch에 있는 열거자 '식별자'가 case 레이블에 의해 명시적으로 처리되지 않음
컴파일러 경고(수준 4, 해제) C4062 enum '열거형'의 switch에 있는 열거자 '식별자'가 처리되지 않았음
컴파일러 경고(수준 4) C4063 사례 'identifier'가 enum 'enumeration' 스위치에유효한 값이 아닙니다.
컴파일러 경고(수준 4) C4064 불완전한 enum 'enumeration' 스위치
컴파일러 경고(수준 3, 해제) C4065 switch 문에는 'default'이(가) 포함되지만 'case' 레이블은 없습니다.
컴파일러 경고(수준 3) C4066 와이드 문자 상수에서 첫 문자 뒤의 문자는 무시됩니다.
컴파일러 경고(수준 1) C4067 전처리기 지시문 다음에 예기치 않은 토큰이 있습니다. 줄 바꿈 문자가 필요합니다.
컴파일러 경고(수준 1) C4068 알 수 없는 pragma 'identifier'
컴파일러 경고 C4069 long double은 double과 정밀도가 같습니다.
컴파일러 경고(수준 3) C4073 이니셜라이저가 라이브러리 초기화 영역에 있습니다.
컴파일러 경고(수준 1) C4074 이니셜라이저가 컴파일러 예약 초기화 영역에 있습니다.
컴파일러 경고(수준 1) C4075 이니셜라이저가 인식할 수 없는 초기화 영역에 있습니다.
컴파일러 경고(수준 1) C4076 'type_modifier': 'typename' 형식과 함께 사용할 수 없습니다.
컴파일러 경고(수준 1) C4077 알 수 없는 check_stack 옵션입니다.
컴파일러 경고(수준 1) C4079 예기치 않은 'token' 토큰입니다.
컴파일러 경고(수준 1) C4080 세그먼트 이름에 대한 식별자가 있어야 하는데 'symbol'이 있습니다.
컴파일러 경고(수준 1) C4081 'token1'이 필요한데 'token2'가 있습니다.
컴파일러 경고(수준 1) C4083 'token'이 필요합니다. 식별자 'identifier'를 찾았습니다.
컴파일러 경고(수준 1) C4085 pragma 매개 변수는 'on' 또는 'off'가 되어야 합니다.
컴파일러 경고(수준 1) C4086 pragma 매개 변수는 '1', '2', '4', '8' 또는 '16'이어야 합니다.
컴파일러 경고(수준 1) C4087 'function': 'void' 매개 변수 목록을 사용하여 선언되었습니다.
컴파일러 경고(수준 1) C4088 'function': 실제 매개 변수 'parameter_number'의 포인터 불일치, 공식 매개 변수 'parameter_number'
컴파일러 경고(수준 1) C4089 'function': 실제 매개 변수 'parameter_number'의 다른 형식, 공식 매개 변수 'parameter_number'
컴파일러 경고(수준 1) C4090 'operation': 다른 'modifier' 한정자
컴파일러 경고(수준 1 및 수준 2) C4091 'keyword': 변수가 선언되지 않으면 'type' 왼쪽은 무시됩니다.
컴파일러 경고(수준 4) C4092 sizeof가 'unsigned long'을 반환합니다.
컴파일러 경고(수준 2) C4094 태그가 지정되지 않은 'token'이 기호를 선언하지 않았습니다.
컴파일러 경고(수준 1) C4096 'identifier': 인터페이스가 COM 인터페이스가 아니므로 IDL로 내보내지 않습니다.
컴파일러 경고(수준 1) C4097 pragma 매개 변수는 'restore' 또는 'off'가 되어야 합니다.
컴파일러 경고(수준 1) C4098 'function': 'void' 함수에서 값을 반환하고 있습니다.
컴파일러 경고(수준 2) C4099 'identifier': 'object_type1'을 사용하여 처음 표시되는 형식 이름이 이제 'object_type2'을 사용하여 표시됩니다.
컴파일러 경고(수준 4) C4100 'identifier': 참조되지 않은 공식 매개 변수
컴파일러 경고(수준 3 및 수준 4) C4101 'identifier': 참조되지 않은 지역 변수
컴파일러 경고(수준 3) C4102 'label': 참조되지 않은 레이블입니다.
컴파일러 경고(수준 1) C4103 헤더를 포함한 후 맞춤 방식이 변경된 것은 #pragma pack(pop)이 없기 때문일 수 있습니다.
컴파일러 경고(수준 1) C4109 예기치 않은 식별자 'identifier'입니다.
컴파일러 경고(수준 1 및 수준 4) C4112 #line에는 1과 'line_count' 사이의 정수가 필요함
컴파일러 경고(수준 1) C4113 'identifier1'의 매개 변수 목록이 'identifier2'와 다릅니다.
컴파일러 경고(수준 1) C4114 동일한 형식 한정자를 두 번 이상 사용했습니다.
컴파일러 경고(수준 1 및 수준 4) C4115 'type': 괄호 안에 명명된 형식 정의가 있습니다.
컴파일러 경고(수준 1) C4116 괄호 안에 명명되지 않은 형식 정의가 있습니다.
컴파일러 경고(수준 1) C4117 'name' 매크로 이름이 예약되었습니다. 'command'는 무시됩니다.
컴파일러 경고(수준 1) C4119 서로 다른 기준 'base1'과 'base2'를 지정했습니다.
컴파일러 경고(수준 1) C4120 based 또는 unbased가 일치하지 않습니다.
컴파일러 경고(수준 4) C4121 'symbol': 멤버의 맞춤은 압축에 민감했음
컴파일러 경고(수준 1) C4122 'function': alloc_text는 C 링크가 있는 함수에만 적용될 수 있습니다.
컴파일러 경고(수준 1) C4123 다른 기본 식을 지정했습니다.
컴파일러 경고(수준 1) C4124 __fastcall과 함께 스택 검사를 수행하는 것은 비효율적입니다.
컴파일러 경고(수준 4) C4125 10진수가 8진수 이스케이프 시퀀스를 마칩니다.
컴파일러 경고(수준 4) C4127 조건식이 상수입니다.
컴파일러 경고(수준 1) C4129 'character': 문자 이스케이프 시퀀스를 인식할 수 없습니다.
컴파일러 경고(수준 4) C4130 'operator': 문자열 상수의 주소에서 논리 연산을 수행했습니다.
컴파일러 경고(수준 4) C4131 'function': 이전 스타일의 선언자를 사용합니다.
컴파일러 경고(수준 4) C4132 'object': const 개체를 초기화해야 합니다.
컴파일러 경고(수준 1 및 수준 3) C4133 'expression': 호환되지 않는 형식 - 'type1'에서 'type2'
컴파일러 경고 C4137 'function': 부동 소수점 함수의 반환 값이 없습니다.
컴파일러 경고(수준 1) C4138 '*/'가 주석 외부에 있습니다.
컴파일러 경고(수준 1, 오류) C4141 'modifier': 두 번 이상 사용했습니다.
컴파일러 경고(수준 1) C4142 'identifier': 형식의 양성 재정의
컴파일러 경고(수준 1) C4143 pragma 'same_seg'은 지원되지 않습니다. __based 할당 사용
컴파일러 경고(수준 1) C4144 'expression': 관계식을 switch 식으로 사용했습니다.
컴파일러 경고(수준 1) C4145 'expression1': 관계식을 switch 식으로 사용했습니다. 'expression2'와 혼동할 수 있습니다.
컴파일러 경고(수준 2) C4146 단항 빼기 연산자가 부호 없는 형식에 적용되었습니다. 결과는 역시 unsigned입니다.
컴파일러 경고(수준 2) C4150 불완전한 형식 'type'에 대한 포인터를 삭제했습니다. 소멸자가 호출되지 않습니다.
컴파일러 경고(수준 4) C4152 비표준 확장입니다. 식에서 함수/데이터 포인터 변환이 있습니다.
컴파일러 경고(수준 1) C4153 식에서 함수/데이터 포인터 변환이 있습니다.
컴파일러 경고(수준 1) C4154 배열 식을 삭제했습니다. 포인터로 변환이 제공됩니다.
컴파일러 경고(수준 1) C4155 'delete' 배열 형식을 사용하지 않고 배열 식을 삭제했습니다.
컴파일러 경고(수준 2) C4156 'delete' 배열 형식을 사용하지 않고 배열 식을 삭제했습니다. 배열 형식이 대체됩니다.
컴파일러 경고(수준 1) C4157 C 컴파일러에서 pragma가 무시되었습니다.
컴파일러 경고(수준 1) C4158 #pragma pointers_to_members(full_generality, 'inheritance_type') 가정
컴파일러 경고(수준 3) C4159 #pragma 'pragma'(pop,...): 이전에 푸시한 식별자 'identifier'가 팝업되었습니다.
컴파일러 경고(수준 1) C4160 #pragma 'pragma'(pop,...): 이전에 푸시한 'identifier' 식별자를 찾을 수 없습니다.
컴파일러 경고(수준 3) C4161 #pragma 'pragma'(pop...): 푸시보다 더 많은 팝
컴파일러 경고(수준 1) C4162 'identifier': C 링크가 있는 함수가 없습니다.
컴파일러 경고(수준 1) C4163 'identifier': 내장 함수로 사용할 수 없습니다.
컴파일러 경고(수준 1) C4164 'function': 내장 함수를 선언하지 않았습니다.
컴파일러 경고(수준 3, 해제) C4165 'HRESULT'이(가) 'bool'(으)로 변환되고 있습니다. 계속하시겠습니까?
컴파일러 경고(수준 1) C4166 생성자/소멸자에 대한 호출 규칙이 잘못되었습니다.
컴파일러 경고(수준 1) C4167 'function': 내장 함수로만 사용할 수 있습니다.
컴파일러 경고(수준 1) C4168 컴파일러 한계: 디버거 형식을 벗어났습니다. 'database' 프로그램 데이터베이스를 삭제하고 다시 빌드합니다.
컴파일러 경고(수준 1) C4172 지역 변수 또는 임시 optional_context 주소 반환
컴파일러 경고(수준 1) C4174 'name': #pragma component(으)로 사용할 수 없음
컴파일러 경고(수준 1) C4175 #pragma component(browser, on): 명령줄에서 브라우저 정보를 처음에 지정해야 합니다.
컴파일러 경고(수준 1) C4176 'subcomponent': #pragma component 브라우저에 대한 알 수 없는 하위 구성 요소
컴파일러 경고(수준 1) C4177 #pragma 'pragma'는 전역 범위 또는 네임스페이스 범위에서만 사용해야 합니다.
컴파일러 경고(수준 1) C4178 case 'constant' 상수가 switch 식의 형식에는 너무 큽니다.
컴파일러 경고(수준 4, 더 이상 표시되지 않음) C4179 '//*' : '/'와 '/\*'로 구문 분석됩니다. 표준 '//' 주석과 혼동됩니다.
컴파일러 경고(수준 1) C4180 함수 형식에 적용되는 한정자가 의미가 없으므로 무시됩니다.
컴파일러 경고 C4181 참조 형식에 적용되는 한정자가 무시됩니다.
컴파일러 경고(수준 1) C4182 #include 중첩 수준은 nest_count입니다. 무한 재귀 발생 가능
컴파일러 경고(수준 1) C4183 'identifier': 반환 형식이 없습니다. 'int'를 반환하는 멤버 함수로 간주됩니다.
컴파일러 경고(수준 1) C4185 알 수 없는 #import 특성 'attribute' 무시
컴파일러 경고(수준 1) C4186 #import 특성 'attribute'에 'argument_count' 인수가 필요합니다. 무시됨
컴파일러 경고(수준 1) C4187 #import 특성 'attribute1' 및 'attribute2'는 호환되지 않으므로 모두 무시됩니다.
컴파일러 경고(수준 1) C4188 상수 식이 정수 계열이 아닙니다.
컴파일러 경고(수준 3 및 수준 4) C4189 'identifier': 지역 변수가 초기화되었으나 참조되지 않았습니다.
컴파일러 경고(수준 1) C4190 'identifier1'에 C 링크가 지정되어 있지만 C와 호환되지 않는 UDT 'identifier2'를 반환합니다.
컴파일러 경고(수준 3, 해제) C4191 '작업': 'type_of_expression'에서 'type_required'로의 변환이 안전하지 않음
결과 포인터를 사용하여 함수를 호출하면 프로그램이 실패할 수 있습니다.
컴파일러 경고(수준 3) C4192 형식 라이브러리 'library'를 가져오는 동안 자동으로 'identifier' 제외
컴파일러 경고(수준 3) C4193 #pragma warning(pop): 일치하는 '#pragma warning(push)' 없음
컴파일러 경고(수준 1) C4194 #pragma start_map_region은(는) 중첩할 수 없습니다. 무시
컴파일러 경고(수준 1) C4195 #pragma stop_map_region 일치 없이 #pragma start_map_region 사용됨. 무시
컴파일러 경고(수준 1) C4196 'token1' 또는 'token2'가 필요합니다. 'token3'이 발견되었습니다.
컴파일러 경고(수준 3) C4197 'type': 캐스트의 최상위 수준 volatile이(가) 무시됩니다.
컴파일러 경고(수준 1, 수준 2, 수준 3, 및 수준 4) C4199 message

참고 항목

C/C++ 컴파일러 및 빌드 도구 오류/경고
컴파일러 경고 C4000 ~ C5999