在 C 中使用 C 头文件:命名空间还是全局作用域?
在 C 中,可以通过修改头文件来访问 C 函数和头文件名称(例如,stdio.h 到 cstdio、stdlib.h 到 cstdlib)。然而,它提出了一个问题,即在 C 代码中对于这些标头是否使用 std:: 命名空间中的函数或全局命名空间。
C 中的命名空间与全局作用域
根据 C 11 标准,每个带有“.h”扩展名的 C 头文件的行为就好像其名称被放置在全局命名空间和 std 命名空间中一样。这些名称是否首先在 std:: 命名空间中声明并注入到全局命名空间中,还是反之亦然,尚未指定。
首选方法
确保与未来的兼容性C 修订并消除潜在的歧义,建议使用“cname”标头并在 std:: 命名空间内声明和定义函数。使用旧的“.h”标头已被弃用,并已确定在即将发布的版本中删除。
示例代码
首选以下代码片段:
#include <cstdio> int main() { std::printf("Hello world\n"); }
over:
#include <stdio.h> int main() { printf("Hello world\n"); }
结论
虽然可以在 C 中对 C 函数和头文件使用 std:: 和全局命名空间,首选方法是包含“cname”标头并使用 std:: 命名空间中的声明和定义,以便与未来的 C 修订版保持一致并避免潜在问题。
以上是应该从 C 中的 `std::` 命名空间还是全局命名空间中使用 C 函数和头文件?的详细内容。更多信息请关注PHP中文网其他相关文章!