首页 > 后端开发 > C++ > 应该从 C 中的 `std::` 命名空间还是全局命名空间中使用 C 函数和头文件?

应该从 C 中的 `std::` 命名空间还是全局命名空间中使用 C 函数和头文件?

Susan Sarandon
发布: 2024-11-14 19:00:02
原创
886 人浏览过

Should C functions and headers be used from the `std::` namespace or the global namespace in C  ?

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板