Thanks to visit codestin.com
Credit goes to github.com

Skip to content

C++ 中不允许将 NULL 定义为 ((void*)0) #274

Closed
@Mq-b

Description

@Mq-b
  • 文件路径:book/zh-cn/02-usability.md

nullptr 出现的目的是为了替代 NULL。在某种意义上来说,传统 C++ 会把 NULL、0 视为同一种东西,这取决于编译器如何定义 NULL,有些编译器会将 NULL 定义为 ((void*)0),有些则会直接将其定义为 0。

  • C 中,宏 NULL 可以拥有类型 void*,但这在 C++ 中不允许,因为空指针常量不能具有该类型。这是明确规定的。

应该改为

nullptr 出现的目的是为了替代 NULL。C++ 可能会把 NULL、0 视为同一种东西,这取决于编译器如何定义 NULL,宏 NULL 是由实现定义的空指针常量。而值为零的整数字面量就是空指针常量

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions