返回介绍

9.4 总结

发布于 2024-10-08 23:14:07 字数 1009 浏览 0 评论 0 收藏 0

C++鼓励程序员在开发程序时使用多个文件。一种有效的组织策略是,使用头文件来定义用户类型,为操纵用户类型的函数提供函数原型;并将函数定义放在一个独立的源代码文件中。头文件和源代码文件一起定义和实现了用户定义的类型及其使用方式。最后,将 main( ) 和其他使用这些函数的函数放在第三个文件中。

C++的存储方案决定了变量保留在内存中的时间(储存持续性)以及程序的哪一部分可以访问它(作用域和链接性)。自动变量是在代码块(如函数体或函数体中的代码块)中定义的变量,仅当程序执行到包含定义的代码块时,它们才存在,并且可见。自动变量可以通过使用存储类型说明符 register 或根本不使用说明符来声明,没有使用说明符时,变量将默认为自动的。register 说明符提示编译器,该变量的使用频率很高,但 C++11 摒弃了这种用法。

静态变量在整个程序执行期间都存在。对于在函数外面定义的变量,其所属文件中位于该变量的定义后面的所有函数都可以使用它(文件作用域),并可在程序的其他文件中使用(外部链接性)。另一个文件要使用这种变量,必须使用 extern 关键字来声明它。对于文件间共享的变量,应在一个文件中包含其定义声明(无需使用 extern,但如果同时进行初始化,也可使用它),并在其他文件中包含引用声明(使用 extern 且不初始化)。在函数的外面使用关键字 static 定义的变量的作用域为整个文件,但是不能用于其他文件(内部链接性)。在代码块中使用关键字 static 定义的变量被限制在该代码块内(局部作用域、无链接性),但在整个程序执行期间,它都一直存在并且保持原值。

在默认情况下,C++函数的链接性为外部,因此可在文件间共享;但使用关键字 static 限定的函数的链接性为内部的,被限制在定义它的文件中。

动态内存分配和释放是使用 new 和 delete 进行的,它使用自由存储区或堆来存储数据。调用 new 占用内存,而调用 delete 释放内存。程序使用指针来跟踪这些内存单元。

名称空间允许定义一个可在其中声明标识符的命名区域。这样做的目的是减少名称冲突,尤其当程序非常大,并使用多个厂商的代码时。可以通过使用作用域解析运算符、using 声明或 using 编译指令,来使名称空间中的标识符可用。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文