内存模型和名称空间

news/2024/12/5 6:56:32/

头文件中常包含的内容:

函数原型

使用#define或const定义的符号常量;

结构声明,

类声明,

模板声明

内联函数

声明包括:引用声明(extern),定义声明,区别在于是否分配内存空间;

const全局变量的链接性为内部的,这里的原因在于:

假设有多个窗口定义了const int i=0;

那么在另一个窗口中使用extern const int i时,编译器就不知道要使用哪个文件中定义的i;尤其是当多个头文件定义了相同名称的常量时,因为这是不可避免地,这条主要是针对常量的,因为没有头文件会把变量放在里面,但会有许许多多的常量;

为了避免头文件引起的一个变量名称多种定义的缺点,C++引入了名称空间!这让不同的变量,常量都能被定义了,但他的缺点在于需要包含头文件,因此extern还是很有用的,可以减少编译所需的时间和内存空间,当我们需要“file.h”里的一个函数时,我们不必将整个“file.h"包含进来;

但也可以使用extern关键字让常量的链接性是外部的,

extern const int states=0;

 只有一个例外:内联函数,内联函数的定义在头文件里,C++允许内联函数的链接性是外部的,

使用C++,C库里的函数:

如果要特定的使用库函数,需要在函数原型中指出:

extern "C" void spiff(int);extern void spiff(int);extern "C++" void spiff(int);C的函数是不允许重载的,但C++允许,这也就出现了函数特征标这个名词;假如c,C++定义了相同名称的函数,特征标也相同,该如何调用呢?
就是上面提到的这三行代码;

初始化:

静态初始化和动态初始化,静态初始化指编译器在处理文件时初始化,动态初始化意味着程序运行时初始化

区别在于:编译器是否需要通过cpu在内存中调用函数和变量的地址;是否在栈区堆积数据;

静态初始化包括零初始化和常量初始化;

对于常量来说,他的链接性是内部的,全局变量使用const类似于使用static;

new运算符

对于结构和数组需要列表初始化:

struct whrer {double x,double y,double z};where*one=new{1.0,2.0,3.0};int *arr=new int [4]{1,2,3,4};int *a=new int{6};

new失败时会发出是std::bad_alloc异常;

定位new运算符:

返回特定地址,使用方式像union;可以将指针绑定到特定的地址处,我们知道计算机的内存是被划分成很多块的,每一个块对应一个硬件,因此这种定位功能赋予了计算机处理特定硬件的能力;

名称空间


http://www.ppmy.cn/news/517121.html

相关文章

【2023,学点儿新Java-20】流程控制语句关键字及其介绍:while、do、break、continue、return

前情回顾: 【2023,学点儿新Java-19】Java特殊空类型关键字 | Java流程控制语句关键字 | switch-case 选择结构的执行过程&注意点 | 详解:for循环的普通和增强版本【2023,学点儿新Java-18】Java关键字汇总说明 |附&#xff1a…

多核CPU

ps:本文较长,全文两千五百字左右! 前言 半导体工艺和架构是提升CPU性能的双驾马车。CPU的发展史,其实就是处理器架构和半导体工艺交互升级、协同演进的发展史。半导体工艺采用更先进的制程,晶体管尺寸变小了&#xf…

平面设计计算机基本配置,平面设计电脑配置要求

如何配置一台好用的用于平面设计的电脑?首先我们要了解下电脑有哪些部分组成,一台电脑有CPU、主板、硬盘、内存条、显卡、显示器、机箱、电源、鼠标和键盘组成。电脑的配置,也就是这些硬件的配置。 作为一个平面设计的电脑,需要打…

cpu满载寿命_CPU的使用寿命大概有多少年,多久迭代一次为佳?

主频fcpu占用率*最高主频,核心电压cpu占用率*标称电压,功耗cpu占用率的三次方*标称功耗.有的CPU平均满负荷有效寿命高达10万小时。CPU并不是易损件,CPU正常使用下,保养得好的话(注意散热和除尘,防潮也做得很好,而且朝频后的温度也不高)&#…

计算机组成CPU最佳配置,计算机组成原理--CPU

算是读书笔记吧 最简单的 CPU 1. 首先,我们有一个自动计数器 这个自动计数器会随着时钟主频不断地自增,来作为我们的 PC 寄存器。 2. 在这个自动计数器的后面,我们连上一个译码器 译码器还要同时连着我们通过大量的 D 触发器组成的内存。 3. …

实时操作系统的滴答Tick设置多少才合适?

关注星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | 嵌入式专栏 最近有读者问了这么一个问题:为啥RTOS的系统滴答(Tick)默认配置都是1000,我配置为100、10000,或者2000可以不? 相…

linux线程时间片是多少合适,嵌入式linux 线程内usleep与cpu调度时间片大小分析

1.在嵌入式linux平台下调用sleep或者usleep函数的CPU线程调度情况? 2.开发板上使用的时at91sam9261 ARM9 CPU芯片,主频240M,操作系统是linux2.6.28.10版本,那么在该操作系统下的线程调度的切换CPU时间片是多长,网上有地方说是linu…

sqlserver对cpu主频要求_记一次SQLServer服务器CPU飙升100%的处理

某集团一台sqlserver服务器,据系统管理员反应,经常会出现CPU飙到100%而且高居不下的情况,然后应用层会出现各种等待超时。 服务器配置:windows server 2008R2 x64 + 32GB内存 +6核CPU,业务量不算特别繁忙,按理CPU使用率不会很高。 首先确认CPU高是否确实是由SQLSERVER导致…