<stddef.h> std::ptrdiff_t' 尚未声明

<stddef.h> std::ptrdiff_t' has not been declared

我已经制作了自己的源文件,我正在尝试添加 stddef.h。编译时出现以下错误:

std::ptrdiff_t' has not been declared.

我做错了什么?

问题是您包含了标准 C header,而不是标准 C++ header .

标准 C header 不会将它们的符号放在 std 命名空间中,因为 C 没有这样的东西。

你有其他应用程序需要 C header 并不重要,如果你想使用 C++ std 命名空间中的 ptrdiff_t type-alias,你必须包括 <cstddef>.

或停止使用 std::ptrdiff_t 并使用来自 <stddef.h> 的不合格和全局 ptrdiff_t