C++基础 namespace register bool
1. namespace
(1)命令空间
C中的命名空间
在C中只有一个全局作用域
C语言中所有全局标识符共享同一个作用域
标识符之间可能发生冲突
C++中提出了命名空间的概念
命令空间将全局作用域分成不同的部分
不同命令空间中的标识符可以同名而不会发生冲突
命令空间也可以互相嵌套
全局作用域也叫默认命令空间。
(2)C++命名空间的定义:
namespace name {....}
(3)C++命令空间的使用:
使用整个命令空间:using namespace name;
使用命令空间中的变量:using name::variable;
使用默认命令空间中的变量:::variable
默认情况下可以直接使用默认命令空间中的所有标识符。
(4)C++命令空间编程实践
namespace NameSpaceA { ; } namespace NameSpaceB { ; namespace NameSpaceC { struct Teacher { ]; int age; }; } } int main() { using namespace NameSpaceA; using NameSpaceB::NameSpaceC::Teacher; printf("a = %d\n", a); printf("a = %d\n", NameSpaceB::a); NameSpaceB::NameSpaceC::Teacher t2 Teacher t1 = {}; printf("t1.name = %s\n", t1.name); printf("t1.age = %d\n", t1.age); system("pause"); ; }
(5)结论
(a)namespace是设置符号的作用域,所以函数,变量,类型定义都可以放在里面。
(b)namespace的定义:namespace name {....},并可以嵌套定义。
(c)namespace的使用:
导入整个 namespace, using namespace name;
导入namespace中的一个符号, using name::value;
单词使用namespace中的一个符号, name::value
2. register
(1)register的作用
请求编译器让变量直接放到寄存器中,速度快。
(2)C中 的register
无法取地址
(3)C++中的register
可以取地址,若取地址,变量实际存放于内存,即register声明无效。
3. bool
(1)bool类型的特点
取值只有 true 和 false。
true,用 1 表示,false 用 0 表示。
(2)bool类型占用内存
理论bool只用一个字节,如果多个bool变量定义在一起,可能会个占用一个bit,这取决于编译器实现。
(3)对bool变量赋值
赋值非0,转换为 true,赋值0,转换为false。
最新文章
- 使用Metrics.NET 构建 ASP.NET MVC 应用程序的性能指标
- JavaScript中数组去除重复
- Node聊天程序实例04:chat_ui.js
- 小例子 熟悉jquery
- symfony2 安装并创建第一个页面
- ACM/ICPC 之 BFS-简单障碍迷宫问题(POJ2935)
- iOS设计模式 - 单例
- 用RPM包安装MySQL的默认安装路径问题
- -Xloggc:log/gc.log 指定GC log的位置
- Spring REST实践之安全
- mysql简单介绍
- DS1302-演示代码
- MySQL5.7绿色版安装
- 一次SSLPeerUnverifiedException,SSLHandshakeException问题的分析
- 初次使用CentOs7遇到的问题
- python与中文的那点事
- 一、Django前后端交互之Ajax和跨域问题
- 通过orderby关键字,LINQ可以实现升序和降序排序。LINQ还支持次要排序。
- PAT 1082 射击比赛(20)(代码+思路)
- ABP学习入门系列(一)(第一个ABP项目)