【小梦C嘎嘎——启航篇】基本语法格式:namespace ?

这篇具有很好参考价值的文章主要介绍了【小梦C嘎嘎——启航篇】基本语法格式:namespace ?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


【小梦C嘎嘎——启航篇】基本语法格式:namespace ?

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
【小梦C嘎嘎——启航篇】基本语法格式:namespace ?

前言🙌

    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【C++入门篇】基本语法格式:namespace 的相关知识。都是精华内容,可不要错过哟!!!😍😍😍

namespace 是什么?

    我一开始学C嘎嘎的时候,老师一上来就跟我说要写下面这两句代码,没有半点解释,就说以后写C嘎嘎代码就要包括这两句代码就行了。

#include<iostream>
using namespace std

namespace 的意义何在?

    为什么要这样写呢?当时我感觉到一脸懵逼。想必大家当时一开始学习C嘎嘎的时候也有这样的一个疑问。然后通过自己的瞎琢磨,对这个东西也有了一点点的理解。
    我们知道,C嘎嘎是C的进阶版,相当于是C语言的基础上进行一个补充和完善的一套语言。而namespace的出现,其实就是为了弥补C语言的一个不足。我们知道,当多人协同开发的时候,当每一个人都写自己的代码时,没准自己写的代码在函数的命名和变量名上和别人的命名是一样的,当将所有代码文件进行一个整合时就会出现重定义的问题。解决的办法就是修改其中一人的代码。然后又遇到新的问题,修改谁的代码?如果彼此都不愿意,还会引发后面的一系列复杂的问题的发生。睿智的C嘎嘎之父发现了C语言的这个问题,于是在C嘎嘎上,增加了namespace这个东西。namespace,其实是一个命名空间。它的作用就是解决命名冲突,也就是重定义的问题
    C嘎嘎是兼容C语言的,因此C语言的语法很多都是可以在C嘎嘎编译器文件上进行使用的。举个栗子

#include<iostream>

namespace tai
{
	int a = 0;
}
int main()
{
	int a = 0;
	printf("%d ", a);
}

运行截图:
【小梦C嘎嘎——启航篇】基本语法格式:namespace ?

上述代码,我们首先创建了一个命名空间域,这个名字可以任意取,但是也有限制,不要和关键字相同。我用C语言的printf在C嘎嘎文件上也可以进行一个编译运行。这里打印输出的是主函数里面的a,这是由于局部优先原则,这里面和C语言上是一致的。那么,如何让他访问命名空间域的变量a呢?很简单,我们只需要借助 :: 域作用限定符。如下面代码所示:

#include<iostream>

namespace tai
{
	int a = 1;
}
int main()
{
	int a = 0;
	printf("%d ",  a);
}

运行截图:【小梦C嘎嘎——启航篇】基本语法格式:namespace ?
因此,在自己编写的命名空间域中,是可以定义和外面相同的变量和函数这些的。不会发生命名冲突的问题。而在多个文件中,一个文件和另一个文件的代码有关命名冲突的问题就可以通过每个文件都设置一个自己的命名空间域,就可以很好的解决这个问题。方法和上面的栗子是一样的,这里就不演示啦。
namespace也是可以进行嵌套使用的

 //可以嵌套
namespace sql
{
	int a = 0;
	namespace bit
	{
		int rand = 0;
		void func()
		{
			printf("func()\n");
		}

		struct TreeNode
		{
			struct TreeNode* left;
			struct TreeNode* right;
			int val;
		};
	}
}


int main()
{
	printf("%p\n", rand);
	printf("%p\n", sql::bit::rand);

	sql::bit::func();

	struct sql::bit::TreeNode node;

	return 0;
}

访问的时候,就需要借助 ::域作用限定符 一级一级的访问即可。

通常,我们使用namespace时,前面都会使用using,这样我们就可以省去 ::域作用限定符。写起代码就比较舒服一点。

#include <iostream>
using namespace std;
int main()
{
	// << 是流插入运算符
	/*std::cout << "hello world" << std::endl;
	std::cout << "hello world" << "\n";*/

	// 自动识别类型
	int i = 11;
	double d = 11.11;
	//std::cout << i <<","<< d << std::endl;

	scanf("%d%lf", &i, &d);
	printf("%d,%lf\n", i, d);

	// >>流提取
	cin >> i >> d;
	cout << i << "," << d << endl;

	return 0;
}

运行截图:
【小梦C嘎嘎——启航篇】基本语法格式:namespace ?
当直接写using namespace std,是将这个标准流给展开,如果不想展开全部给别人看,也可以指定一部分进行一个展开。按照下面这个写法也是可以的,指定需要用到的部分展开即可。

#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
	// << 是流插入运算符
	/*std::cout << "hello world" << std::endl;
	std::cout << "hello world" << "\n";*/

	// 自动识别类型
	int i = 11;
	double d = 11.11;
	//std::cout << i <<","<< d << std::endl;

	scanf("%d%lf", &i, &d);
	printf("%d,%lf\n", i, d);

	// >>流提取
	cin >> i >> d;
	cout << i << "," << d << endl;

	return 0;
}

运行截图:
【小梦C嘎嘎——启航篇】基本语法格式:namespace ?

总结撒花💞

   本篇文章旨在分享C嘎嘎的基本语法格式:namespace 的理解和具体运用先关知识。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘文章来源地址https://www.toymoban.com/news/detail-442485.html

到了这里,关于【小梦C嘎嘎——启航篇】基本语法格式:namespace ?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++笔记】C++启航之为C语言填坑的语法

    我们都知道C++其实就是C语言的升级,那么在“升级”最初阶段就是要对一些在C语言中不足的语法进行改进,这些改进能让我们省很多的力并且代码写起来也比较简洁。 C++引入命名空间主要是为了弥补在C语言中不能存在同名变量或函数的这个语法漏洞。 我们知道在C语言中,

    2024年02月13日
    浏览(40)
  • Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】

    ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。 ECharts 遵循 Apache-2.0 开源协议,免费商用。 ECharts 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)及兼容多种设备,可随时随地任性展示。 ECharts 包含了以下特性: 丰富的可视化

    2024年02月04日
    浏览(47)
  • 【uniapp 小程序开发语法篇】资源引入 | 语法介绍 | UTS 语法支持(链接格式)

    博主: _LJaXi Or 東方幻想郷 专栏: uni-app | 小程序开发 开发工具: HBuilderX 传统vue项目开发,引用组件需要 导入 - 注册 - 使用 三个步骤,如下: Vue 3.x增加了 script setup 特性,将三步优化为两步,无需注册步骤,更为简洁: uni-app 的 easycom 机制,将组件引用进一步优化,开发

    2024年02月13日
    浏览(89)
  • JQL的语法格式

    JQL(Jira Query Language)的语法格式如下: field operator value 其中, 表示 Jira 中的字段(例如 project、assignee、status 等), 表示操作符(例如 =、!=、、 表示字段的值。 例如:project = \\\"My Project\\\" AND status = Open 表示查询项目名称为 \\\"My Project\\\" 并且状态为 \\\"Open\\\" 的问题。 一个实际使用的

    2024年02月07日
    浏览(29)
  • 语法篇--XML数据传输格式

    XML,全称为Extensible Markup Language,即 可扩展标记语言 ,是一种用于存储和传输数据的文本格式。它是由W3C(万维网联盟)推荐的标准,广泛应用于各种系统中,如Web服务、数据库、移动应用等。与HTML相比,XML不是用于显示数据的,而是用于 存储和传输数据 ,其语法结构更为

    2024年02月12日
    浏览(38)
  • 【python基础】if语句-语法格式

    视频讲解 https://www.bilibili.com/video/BV1Hw411S72w/ 简单理解if语句之后,我们的if语句语法格式有多种,选择使用哪种取决于要测试的条件数 最简单的if语句只有一个条件测试和一个代码块 其语法格式: 假设想要知道某人的年龄是否已成年,编写程序如下所示: 如果需要在条件测

    2024年02月08日
    浏览(40)
  • 【Linux】28、命令行参数 语法格式

    命令行参数很复杂,通过 --help 会看到很多符号,比如 [] {} () | …,他们都是什么意思呢?一般格式如下: 示例如下: 命令行常见符号: 没有括号包裹的是必填参数,如: fileName 没有被括号包裹,所以是必填参数 表示可选 即 ls 命令的 -a -l -r -t -A -F -R 和 name 都是可选的 大

    2024年02月22日
    浏览(37)
  • MySQL 特殊语法时间格式以及Greadb连接

    DATE_FORMAT和 to_char()      2. to_date()  和STR_TO_DATE(#{date},\\\'%Y-%m-%d\\\' )

    2024年02月11日
    浏览(34)
  • VBA基本语法及基本使用

    1.准备工作环境 1.1、office的下载 1.2、新建工作环境 打开新建一个Excel表格,后缀名为.xls 或 . xlsm,但是excel默认后缀名为 .xlsx (xlsx不支持宏的定义,其余2种都支持,宏可以理解为不支持写VBA。。。。其实也可以写,就是保存有点问题,最好用其他2种吧) 1.2.1有开发工具选项

    2024年02月04日
    浏览(44)
  • Freemarker基本指令语法和集合指令语法

    Freemarker是一款 模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 1、注释,即#-- --,介于其之间的内容会被f

    2024年02月16日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包