define NULL as nullptr when used in C++11 or later

This should be safer for casting and more compatible with existing code
bases that wrongly assume it must be defined as a pointer.
This commit is contained in:
Ismael Luceno 2021-08-15 17:51:57 +02:00 committed by Rich Felker
parent 8274aaaaa1
commit 98e688a9da
8 changed files with 24 additions and 8 deletions

View File

@ -7,7 +7,9 @@ extern "C" {
#include <features.h>
#ifdef __cplusplus
#if __cplusplus >= 201103L
#define NULL nullptr
#elif defined(__cplusplus)
#define NULL 0L
#else
#define NULL ((void*)0)

View File

@ -1,7 +1,9 @@
#ifndef _STDDEF_H
#define _STDDEF_H
#ifdef __cplusplus
#if __cplusplus >= 201103L
#define NULL nullptr
#elif defined(__cplusplus)
#define NULL 0L
#else
#define NULL ((void*)0)

View File

@ -25,7 +25,9 @@ extern "C" {
#include <bits/alltypes.h>
#ifdef __cplusplus
#if __cplusplus >= 201103L
#define NULL nullptr
#elif defined(__cplusplus)
#define NULL 0L
#else
#define NULL ((void*)0)

View File

@ -7,7 +7,9 @@ extern "C" {
#include <features.h>
#ifdef __cplusplus
#if __cplusplus >= 201103L
#define NULL nullptr
#elif defined(__cplusplus)
#define NULL 0L
#else
#define NULL ((void*)0)

View File

@ -7,7 +7,9 @@ extern "C" {
#include <features.h>
#ifdef __cplusplus
#if __cplusplus >= 201103L
#define NULL nullptr
#elif defined(__cplusplus)
#define NULL 0L
#else
#define NULL ((void*)0)

View File

@ -7,7 +7,9 @@ extern "C" {
#include <features.h>
#ifdef __cplusplus
#if __cplusplus >= 201103L
#define NULL nullptr
#elif defined(__cplusplus)
#define NULL 0L
#else
#define NULL ((void*)0)

View File

@ -15,7 +15,9 @@ extern "C" {
#define SEEK_CUR 1
#define SEEK_END 2
#ifdef __cplusplus
#if __cplusplus >= 201103L
#define NULL nullptr
#elif defined(__cplusplus)
#define NULL 0L
#else
#define NULL ((void*)0)

View File

@ -38,7 +38,9 @@ extern "C" {
#define WCHAR_MIN (-1-0x7fffffff+L'\0')
#endif
#ifdef __cplusplus
#if __cplusplus >= 201103L
#define NULL nullptr
#elif defined(__cplusplus)
#define NULL 0L
#else
#define NULL ((void*)0)