您的位置:首页 > 新闻 > 资讯 > 硬件开发是什么意思_供应优惠的小企业网站建设_达州seo_地推平台

硬件开发是什么意思_供应优惠的小企业网站建设_达州seo_地推平台

2024/12/27 12:54:37 来源:https://blog.csdn.net/JimDu_dwj/article/details/144173978  浏览:    关键词:硬件开发是什么意思_供应优惠的小企业网站建设_达州seo_地推平台
硬件开发是什么意思_供应优惠的小企业网站建设_达州seo_地推平台

文章目录

  • 9.1 单独编译
  • 9.2 存储持续性、作用域和链接性
    • 9.2.3 静态持续变量
      • 3种连接性
        • 外部链接性
        • 内部链接性
        • 无链接性
    • 9.2.4 静态持续性、外部链接性
      • 两种变量声明
        • 定义声明
        • 引用声明
    • 9.2.7 说明符和限定符
      • 1. cv-限定符
        • const
        • volatile
        • 2. mutable
        • 3.const
    • 9.2.9 语言链接性
      • C++语言链接

9.1 单独编译

将程序分解为多个源文件(.cpp文件)和头文件(.h文件)进行分别编译,然后再链接成可执行程序的机制。这种方式有助于大型项目的组织和管理,提高编译效率。

9.2 存储持续性、作用域和链接性

作用域(scope)描述了名称在文件的多大范围内可见。
链接性(linkage)描述了名称如何在不同单元间共享。

寄存器变量

register in count_fast;

最初由C语言引入,建议编译器使用CPU寄存器,而在C++11之后,这种作用失去了,只是表示该变量是自动存储的。

9.2.3 静态持续变量

3种连接性

int global = 1000;    //static duration,external linkage
static intone file=50;//static duration.internal linkage
int main()
{
...
}
void funct1(int n){static int count=0://static duration,no linkageint llama =0;
}
外部链接性

可在其他文件中访问
在代码块的外面声明它

内部链接性

只能在当前文件中访问
必须在代码块的外面声明它,并使用static限定符

无链接性

只能在当前函数或代码块中访问
必须在代码块内声 明它,并使用static限定符

9.2.4 静态持续性、外部链接性

链接性为外部的变量通常简称为外部变量,它们的存储持续性为静态,作用域为整个文件。外部变量也称全局变量。

两种变量声明

定义声明

简称定义,给变量分配存储空间

引用声明

简称声明,不给变量分配存储空间,因为它引用已有的变量

引用声明使用关键字extern,且不进行初始化;否则,声明为定义,导致分配存储空间。

如果要在多个文件中使用外部变量,只需在一个文件中包含该变量的定义(单定义规则),但在使用该变量的其他所有文件中,都必须使 用关键字extern声明它。

9.2.7 说明符和限定符

1. cv-限定符

const
volatile

该关键字的作用是为了改善编译器的优化能力。
例如,假设编译器发现,程序在几条语句中两次使用了某个变量的值,则编译器可能不是让程序查找这个值两次,而是将这个值缓存到寄存器中。这种优化假设变量的值在这两次使用之间不会变化。
如果不将变量声明为volatile,则编译器将进行这种优化;将变量声明为 volatile,相当于告诉编译器,不要进行这种优化。

2. mutable

可以用它来指出,即使结构(或)变量为const,其某个成员也可以被修改

struct data{char name[30];mutable int accesses;
}
const data veep="Claybourne Clodde",0,...};
strcpy(veep.name,"Joye Joux");//not allowed
veep.accesses++               // allowed
3.const

const有一些问题,在默认情况下全局变量的链接性为外部的,但const全局变量的链接 性为内部的。也就是说,在C++看来,全局const定义就像使用了static说明符一样。

如果出于某种原因,程序员希望某个常量的链接性为外部的,则可
以使用extern关键字来覆盖默认的内部链接性:

extern const int states = 50; //definition with external linkage

9.2.9 语言链接性

C++语言链接

在 C++中,同一个名称可能对应多个函数,必须将这些函数翻译为不同的符号名称。因此,C++编译器执行名称矫正或名称修饰,为重载函数生成不同的符号名称。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com