문제

나는 유효하지 않은 값을 -1로 설정하려고 노력하고 있습니다. 저는 vs6 (ISH)에서 일하고 있습니다.

네트워크에서 파일을 읽으려고 노력하고 있으며 총 파일 크기에 대한 값이 잘못 필요하므로 유효한 정보를 얻었는지 0이 유효한 크기이므로 사용할 수 없습니다.

Harper Shelby는 머리에 못을 박았습니다. 약간의 엄지 손가락. 그는 Win32 상수를 언급했습니다. 이것이 바로 내가 생각했던 것입니다 .. 이제 링크를 찾기 위해 :)

도움이 되었습니까?

해결책

#define BAD_VALUE -1

편집 : 원래 질문에는 맥락이 없었습니다. 수정 된 질문은 유효하지 않은 파일 크기를 원하고 따라서 Win32 상수를 찾고 있음을 나타냅니다. 보다 Windows.h 나는 당신이 추구하는 상승이있을 수 있다고 생각합니다 Windows.h 또는 하위-포함 중 하나입니다. 창문이 포함되어 디렉토리가 포함되어 있습니다 ;-)

다른 팁

-1이 시스템의 반환 값에 대한 잘못된 값 인 경우 내부적으로 정의해야합니다.

const int INVALID_FOO = -1

C 호환성이 필요하지 않는 한

#define INVALID_FOO -1

선호합니다. 표준 MFC 또는 Windows 리소스 인 경우 invalid_handle 또는 다른 Win32 정의 상수 중 하나를 사용하십시오.

당신은 당신의 자신의 마법 번호 -1을 창 상수로 위장한 것을 사용하고 싶습니다. 이것은 매우 오해의 소지가 있습니다.

invalid_handle이 0임을 알고 있다고 가정 해 봅시다. invalid_handle로 포인터를 초기화해도 괜찮습니까?

char *myMessage = INVALID_HANDLE;

이것이 당신을 어떻게 공격합니까?

VS에서는 새로운 Windows 콘솔 응용 프로그램 프로젝트를 만듭니다. 프로젝트 설정으로 이동하여 찾아보기 지원을 켜십시오. C ++ 파일을 만들고 프로젝트에 추가하십시오. 유형:

#include <windows.h>
void main(void) {}

파일로. 컴파일하십시오. 이제 invalid_file_size를 파일에 입력하십시오. 이를 마우스 오른쪽 버튼으로 클릭하고 invalid_file_size의 정의를 얻습니다. VS는 정의 된 값으로 가득 찬 많은 Windows 헤더 파일 중 하나를 열 것입니다. 즐기다.

첫 번째는 파일 크기가 결코 음수이므로 파일 크기에 부호되지 않은 int를 사용해야한다는 것입니다. 이제 유효하지 않은 파일 크기는 일반적으로 최대 int이므로 32 비트 부호없는 int를 사용하는 경우 0xffffffff입니다.

const unsigned int INVALID_FILESIZE = 0xFFFFFFFF;

또한 Windows에있는 경우 Windows.h는 잘못된 파일 크기를 모두 정의합니다 (invalid_file_size)

Winapi에서 사용하는 상수를 사용하려면 Winerror.h, Winuser.h 및 Winnt.h 파일을 확인하십시오.

일반적으로 0과 1 (긍정적 및 음수)은 직접 사용해도 괜찮습니다.

실제로, 변수를 대신 사용하는 것이 더 혼란 스러울 것입니다.

업데이트 : 좋아요, 제가 답을 쓴 후 질문을 업데이트했습니다. 산술 방식으로 "-1"을 사용하는 경우 "-1"만 괜찮습니다. 오류 코드를 반환하는 경우 (코드가 -1 인 경우) const를 사용해야합니다.

 const int INVALID_VALUE = -1;
If bytes_read < 0
    // error
EndIf
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top