-1

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

std::ptrdiff_t' 尚未声明。

我做错了什么?

4

1 回答 1

2

问题是您包含标准C标头,而不是标准 C++ 标头。

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

您有其他需要 C 标头的应用程序并不重要,如果您想使用ptrdiff_tC++ 命名空间中的类型别名,则std必须包含<cstddef>.

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

于 2016-09-29T12:37:49.023 回答