稍稍看了会C++ Primer,然后把书中讲这部分的内容精简下。
先给大家说下自动变量,这个是在函数中用的,我个人认为是比较多的一中变量。自动变量的修饰符是(auto),但一般情况下我们忽略它,它是在代码块中被创建,当代码块结束就消失的一种变量。它是存放在堆栈中,所以可想而知,当堆栈结束后,变量也不在了。
接下来讲下自动变量中的寄存器变量,上面说了,变量放在堆栈中,所以会消耗内存,而寄存器变量则解决了这个问题,它需要在自动变量声明前加上一个“register”,这样编辑器就会去使用寄存器来处理变量。但记住一点,由于寄存器上没有地址,所以,对寄存器变量不能使用取地址符号。
接下来说一下静态变量。这个是我个人感觉很头疼的一种变量。
首先,静态存储持续性有三种链接性,1.外部链接性,2.内部链接性,3.无连接性。
下面上一张表格,里面介绍了五种存储方式。
5种变量储存方式
存储描述 |
持续性 |
作用域 |
链接性 |
如何声明 |
自动 |
自动 |
代码块 |
无 |
在代码块中,(auto) |
寄存器 |
自动 |
代码块 |
无 |
在代码块中,用register |
静态,无连接性 |
静态 |
代码块 |
无 |
在代码块中,用static |
静态,外部链接性 |
静态 |
文件 |
外部 |
在函数外面 |
静态,内部链接性 |
静态 |
文件 |
内部 |
在函数外面,使用关键字static |
我先贴这些上来,相信大家也都能看懂些,时间不早了,先睡觉去,明天晚上下班后,接着补充,到时候给大家上几段代码,然后介绍下命名空间,其实也是一种作用域。嘿嘿,先挖个坑在这,明天来填坑,啊不对。。12点了,是今天晚上。。。
分享到:
相关推荐
- **作用域限制**:在C++中,`static`关键字用于限制变量的作用域。如果在一个文件中定义了一个`static`变量,那么它只能在这个文件内部被访问。 - **存储域设置**:`static`还可以用来设置变量的存储域。例如,当在...
在特定的C/C++编译环境中,指针根据其作用域和寻址方式的不同,可能分为近指针、远指针和巨指针。掌握这些概念,有助于编写更底层和更高效的代码。 #### 这样学习Unix下C语言编程最有效 有效的学习方法包括理论学习...
C++ 编码规范 1. 引言 引言部分通常介绍规范的目的、适用范围、组织机构和版权信息。它可能还包括一些约定,比如文档中的排版规则,...在实际应用中,建议参考完整的文档和最新的C++标准,以获取更准确的编程指导。
2. **成员函数的重载、覆盖与隐藏**:重载是在同一个作用域中定义多个同名函数;覆盖是在派生类中重新定义基类的虚函数;隐藏是派生类中定义了一个与基类中非虚函数同名的函数。 3. **参数的缺省值**:为函数参数...
- **The C++ object model**(C++对象模型):介绍了C++中对象的概念和属性。 - **Program execution**(程序执行):解释了程序的执行流程和行为。 - **Multi-threaded executions and data races**(多线程执行与...
13. 自动类(例如局部变量)的可见性仅限于其作用域,而其存在性持续到定义它的函数或块结束,因此可见性和存在性不一致。 14. 结构体定义中,不正确的是`struct stud[20]`,因为它在结构体类型定义中立即创建了...
增加前缀来标识变量类型(例如,"int_count")和作用域(如"static_local_var")。 4. **实例命名规范**: 实例通常使用驼峰式命名,如 "myObject"。可以使用前缀来表示特定用途,如 "g_stCurrentLinkList"。 5. **...
1. **变量声明位置**:尽量在使用前声明变量,这样有助于减少作用域范围,同时使代码更易于理解和维护。 2. **结构体设计**:结构体的设计应当合理,尽量避免过多的成员变量和复杂的继承关系。 #### 六、函数与...
4. **避免全局变量**:尽可能减少全局变量的使用,以降低作用域污染。 5. **内存管理**:正确使用`new`和`delete`,防止内存泄漏;考虑使用智能指针以自动管理内存。 6. **异常处理**:合理使用`try-catch`来捕获和...
- **实践建议**:保持循环变量的作用域最小化。 **4.6 SWITCH语句** - **形式**:`switch (表达式) { case 常量表达式: ... break; }`。 - **实践建议**:使用`break`避免不必要的执行。 **4.7 GOTO语句** - **...
25. **重载、重写、隐藏**:重载在同一作用域内定义相同名称但参数不同的函数;重写是子类覆盖父类的方法;隐藏是不同作用域内的同名变量。 26. **深度优先遍历与广度优先遍历**:DFS是沿着分支深入探索,BFS是从根...
26. **重载、重写、隐藏**:重载在同一作用域内同名函数的不同参数列表;重写是子类对父类虚函数的重新定义;隐藏是不同作用域内同名变量的覆盖。 27. **深度优先遍历与广度优先遍历**:DFS是先访问子节点再回溯,...
【华为编码规范】是华为公司制定的一套针对C/C++编程语言的代码编写准则,旨在提升代码质量和可读性,确保代码的可维护性和一致性。规范涵盖了多个方面,包括排版、注释、标识符命名、可读性、变量与结构、函数与...
重载是C++中的一个重要特性,它允许在同一个作用域内定义多个同名函数,但这些函数的参数列表必须不同,即参数类型、数量或顺序至少有一个不相同。重载的主要目的是增加代码的可读性和灵活性,使得程序员可以根据...
随着版本的更新,内核性能和安全性得到持续提升。 ### 6. NUMA架构 Non-Uniform Memory Access(NUMA)是非统一内存访问架构,用于多处理器系统中。在NUMA架构下,处理器访问本地内存的速度比访问远程内存快。理解...
函数是Lua中最重要的构造块,它具有参数、返回值、局部变量和作用域等概念。Lua支持多种函数回调方式,以及元编程,允许开发者在运行时改变或扩展语言特性。Lua的模块系统允许代码复用和封装,方便了模块化编程。 ...