2011-11-14 2 views
3

PUT, POST 및 GET 용 소켓 라이브러리에 열거 형 데이터 형식이 있습니다. DELETE를 추가했지만 DELETECMD를 변경하기 전까지는 오류가 발생했습니다. DELETE (모두 대문자)가 C++의 예약어입니까? 그렇다면 무엇을 위해서? (나는 이미 정상적인 "삭제"기능을 잘 알고있다.) 그것은 문제가되지 않는다. 나는 단지 궁금하다.C/C++에서 DELETE (모두 대문자)를 예약 했습니까?

+2

어떤 컴파일러를 사용하고 있습니까? –

+1

그 오류는 무엇 이었습니까? –

+0

정확한 오류는 무엇입니까? –

답변

6

그것은 C 또는 C++로 예약되지 않은,하지만 그것은 Windows에서 사용되는 :이 동작은 포함 된 헤더 파일에서 이전의 변수 정의 또는 처리기 정의에 의해 발생할 수 있습니다. READ_CONTROL, SYNCHRONIZE, WRITE_DAC 및 WRITE_OWNER와 함께 standard access rights 중 하나입니다. 그것들은 winnt.h에 정의되어 있으며, windows.h을 포함 할 때마다 암시 적으로 표시됩니다.

+0

아, 그건 의미가 있습니다. 저는 Visual Studio 2005를 사용하고 있으며 Windows SDK 7.1이 링크되어 있습니다. –

6

DELETE은 예약 키워드가 아니기 때문에 delete은 (연산자이기는하지만 기능이 아닙니다.) 어딘가에 DELETE 또는 그와 비슷한 것을 정의하는 매크로 정의가있을 수 있습니다.

1

모두 대문자로 된 DELETE는 C++에서 키워드가 아닙니다.

//someheader.h 

#define DELETE delete 

//yourfile.cpp 

#include "someheader.h" 

//whatever.... 
int DELETE; 
//...... 
관련 문제