오류 :이 범위에서 'NULL'이 유효하지 않습니다.
gcc 4.3에서 C ++를 선택할 때이 메시지가 나타납니다.
error: ‘NULL’ was not declared in this scope
사라지고 사라지고 이유를 모르겠습니다. 왜?
감사합니다.
NULL
키워드가 아닙니다. 일부 표준 헤더에 정의 된 식별자입니다. 포함 할 수 있습니다
#include <cstddef>
와 같은 다른 기본 사항을 포함하여 범위 내에서 사용하십시오 std::size_t
.
GCC는 C ++ 11을 향한 조치를 취하고 따라서 NULL 상수 를 사용하여 cstddef 를 포함해야합니다 . C ++ 11에서 선호되는 방법은 새 nullptr 키워드 를 사용하는 것 입니다.이 키워드는 버전 4.6 이후 GCC에서 구현됩니다. nullptr 은 암시 적으로 유형으로 변환 할 수있는 정수 포인터 및 정수 유형에 대해 오버로드하는 데 사용할 수있는 호출을 명확하게 사용할 수 있습니다.
void f(int x);
void f(void * ptr);
f(0); // Passes int 0.
f(nullptr); // Passes void * 0.
NULL
키워드가 아닙니다. 0에 대한 매크로 대체이며 stddef.h
또는에 들어 cstddef
갑니다. 당신은 그것을 #included
++에서 볼 수 있기 때문에, 헤더 파일을 NULL
일반 변수 이름으로, 당신은 그것을 선언하지 않습니다.
다른 답변을 완료 한 경우 C ++ 11을 사용 nullptr
하는 경우 null을 입력하십시오 void 포인터를 의미하는 키워드 인을 사용하십시오 . ( NULL
포인터 유형이 아닌) 대신
NULL은 다음 사용할 수 있습니다.
#include <string.h>
String.h는 다른 곳에서 NULL을 가져옵니다.
매크로 NULL을 선언 할 수 있습니다. #include 다음에 추가하십시오 :
#define NULL 0
또는
#ifndef NULL
#define NULL 0
#endif
아니 ";" 지시의 끝에 ...
참고 URL : https://stackoverflow.com/questions/462165/error-null-was-not-declared-in-this-scope
'IT' 카테고리의 다른 글
판매에 HTTP 상태 코드 201 반환 (0) | 2020.07.20 |
---|---|
Java8에서 void (void가 아닌) 메소드에 함수 유형을 지정하는 방법은 무엇입니까? (0) | 2020.07.20 |
django : select_related와 get_object_or_404를 함께 사용 (0) | 2020.07.20 |
R을 사용하여 압축 된 데이터 파일 다운로드, 데이터 추출 및 가져 오기 (0) | 2020.07.20 |
한 파일에서 다른 파일에있는 행 삭제 (0) | 2020.07.20 |