c++ - 我应该为 size_t 包含 stddef.h 还是 cstddef

标签 c++ namespaces naming-conventions header-files size-t

当我想使用 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/

相关文章:

c++ - 如何解决系统和库依赖项之间的 C++ 冲突

c++ - 异常处理和范围

c++ - 命名空间错误 'Not a namespace-name'

sql-server - SQL Server 架构命名约定

c++ - 源不兼容是否总是意味着二进制不兼容?

namespaces - 在扩展 key 中使用 "user_"前缀是否有好处?

php - 声明和使用 PHP 命名空间

函数命名约定

perl - 为什么 "import"子程序在 Perl 中没有大写

c++ - 使用四元数进行OpenGL旋转