我制作了自己的源文件,并且我尝试添加stddef.h。在编译时我有以下错误:
的std :: ptrdiff_t的'尚未宣布。
我做错了什么?
答案 0 :(得分:1)
问题是您要包含标准 C 标头,而不是标准C ++标头。
标准C标头不会将它们的符号放在std
命名空间中,因为C没有这样的东西。
如果要使用C ++ ptrdiff_t
命名空间中的std
类型别名,那么您有其他需要C头的应用程序并不重要,您必须包含{{1} }。
或停止使用<cstddef>
并使用std::ptrdiff_t
中的不合格和全球ptrdiff_t
。