当我想使用 size_t
时在 C++ 中,我应该包含 <stddef.h>
或 <cstddef>
?我听几个人说<cstddef>
是个坏主意,应该弃用。这是为什么呢?
最佳答案
stddef.h
是 C 头文件。姓名size_t
在它的全局命名空间中。 <cstddef>
另一方面,它是一个 C++ 头文件,它将 C 名称包装到 std 命名空间中,这自然是 C++ 方法,所以如果包含 <cstddef>
并且编译器是兼容的,你必须使用 std::size_t
.显然,在 C++ 中,C++ 方法更合适。
从技术上讲,C header 也可能包含 std 命名空间中的名称。但是 C header (以 .h 结尾的)也将名称引入全局命名空间(从而污染了它)。
关于c++ - 我应该为 size_t 包含 stddef.h 还是 cstddef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5079325/