void
不完整的类型; 一个对象不可能有 void
类型,也没有 void
的数组或 void
的引用。它用作不返回任何内容的函数的返回类型。
此外,可以使用 void
类型的单个参数冗余地声明函数; 这相当于声明一个没有参数的函数(例如 int main()
和 int main(void)
声明相同的函数)。允许此语法与 C 兼容(其中函数声明与 C++中的含义不同)。
类型 void*
(“指向 void
的指针”)具有以下属性:任何对象指针都可以转换为它并返回并生成相同的指针。此功能使 void*
类型适用于某些类型(类型不安全)类型擦除接口,例如 C 风格 API 中的通用上下文(例如 qsort
,pthread_create
)。
任何表达式都可以转换为 void
类型的表达式; 这被称为丢弃值表达式 :
static_cast<void>(std::printf("Hello, %s!\n", name)); // discard return value
这可能有助于明确表示表达式的值不感兴趣,并且仅针对其副作用评估表达式。