微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 命名空间到底是什么,为什么有必要

我现在正在学习C,在每个项目的开始阶段,我的讲师都会说:
using namespace std;

据我所知,它使您不必调用包含头名称的头文件中的函数,如iostream :: stdout,而只需调用stdout.

但这条线究竟告诉C做什么.什么是命名空间,什么是std?

除了python之外,我也是编程新手,所以切换到一个新的范例对我来说非常困惑.

解决方法

来自cppreference.com:

Namespaces provide a method for preventing name conflicts in large
projects.

Symbols declared inside a namespace block are placed in a named scope
that prevents them from being mistaken for identically-named symbols
in other scopes.

Multiple namespace blocks with the same name are allowed. All
declarations within those blocks are declared in the named scope.

命名空间可以避免名称冲突,例如标准库定义了sort(),但这对于排序函数来说是一个非常好的名称,这要归功于您可以定义自己的sort()的名称空间,因为它不在同一名称空间中作为标准的.

using指令告诉编译器在当前作用域中使用该命名空间,这样就可以了

int f(){
    std::cout << "out!" << std::endl;
}

要么:

int f(){
    using namespace std;
    cout << "out!" << endl;
}

当你从另一个命名空间中使用很多东西时,它很方便.

来源:Namespaces – cppreference.com

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐