const 与 static

UE5热更新(通过Pak包加载关卡资源,并添加到流关卡) 请先阅读我上一篇文章)** 阅读详情

const static char *str = "hello world"!

把 const 与 static 连在一起用有什么特别的意思呢?表示在该文件作用域中的常量,对该文件外的函数不可见

 

const与static变量分别位于程序的哪个区域呢?

一个由C/C++编译的程序占用的内存分为以下几个部分  
  1)、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其  
  操作方式类似于数据结构中的栈。  
  2)、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回  
  收   。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。  
  3)、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的  
  全局变量和静态变量在一块区域,   未初始化的全局变量和未初始化的静态变量在相邻的另  
  一块区域。   -   程序结束后由系统释放。  
  4)、文字常量区   —常量字符串就是放在这里的。   程序结束后由系统释放  
  5)、程序代码区—存放函数体的二进制代码。  

 

所以,一般来说都是放在静态区。

windows和Linux上的程序在内存中的结构是怎么样的?

了解程序在内存中的组成对优化和调试有很大的帮助。通过gcc的objdump可以把程序的组成显示出来,看一下是否有很大的const变量占据了内存。在windows中如何查看呢?

还有就是如何判断堆栈溢出,一般来说一个线程规定了自身栈空间的大小,当程序crash时,可以通过指针地址判断crash是否是因为栈溢出造成的。所以问题就是如何知道当前线程的栈基址呢?程序是如何被load到内存中?指令如何被执行?线程如何被创建?线程以何种方式存在于内存之中呢?

【异常】Milvus 向量数据库字段缺失错误分析与解决 MilvusVectorStoreServiceV2 - Failed to insert batch [0-1]: The field: 本文分析了Milvus向量数据库插入操作中出现的字段缺失错误。错误显示age_mode字段未提供,导致批量插入失败。根本原因是Milvus Schema要求所有定义字段必须存在,但代码中对部分字段采用条件添加方式。解决方案是将条件添加改为始终添加,为可能为null的字段提供空字符串默认值。文章总结了Schema约束、防御性编程等经验,并建议通过Schema变更检查、单元测试覆盖和数据校验层等预防措施避免类似问题。该问题影响product、mac、source等多个字段,修改后确保了数据插入的可靠性。 阅读详情

相关推荐

android mtk camera如何自定义默认拍照与录像分辨率

本文详细解析了在Android MTK平台上自定义相机默认拍照与录像分辨率的方法。通过分析Camera2应用默认选择逻辑,定位并修改PictureSize.java与VideoQualityCaptureRequestConfig.java中的关键代码,实现绕过系统智能选择,强制指定最高或特定分辨率。文章还提供了进阶的可配置化方案与验证避坑指南,帮助开发者精准控制相机行为。

weixin_29194817的博客 432

对const、static、char*类型成员变量写构造函数、拷贝构造函数、赋值构造函数、析构函数

#include <iostream> #include <string> using namespace std; class A { private: static int a; const int b; char* c; public: //const类型需要用初始化列表进行初始化,初始化列表提供的值作为构造const对象的初值 //在构造函数中为指针分配内存空间 A(int bTemp,const char *p = nullptr) :b(bTemp) {

tiandaosi12的博客 990

电力市场小白必看:手把手教你用Matlab实现市场出清电价计算(附完整代码)

本文为电力市场初学者提供了使用Matlab计算市场出清电价的完整指南。通过Yalmip和Matpower工具包,详细讲解了从环境配置到模型构建、求解及结果分析的整个过程,帮助读者快速掌握节点电价计算的核心技术。

weixin_30379531的博客 73

const和static的用法

const 用法 const 修饰局部变量 // 等效的写法 const int n = 1; // n 必须初始化 int const n = 1; // n 必须初始化 const 修饰常量静态字符串 const char* str="fdsafdsa"; 如果没有const的修饰,我们可能会在后面有意无意的写str[4]=’x’这样的语句,这样会导致对只读内存区域的赋值,然后程序会立刻异常终止。有了const,这个错误就能在程序被编译的时候就立即检查出来,这就是const的好处。让逻辑错误在编译

taipe的博客 1234

计算机三级考试嵌入式系统重点精简汇总

第一章 嵌入式系统概论 1.1.1嵌入式系统 (1)特点:(1)专用性;(2)隐蔽性;(3)资源受限;(4)高可靠性;(5)实时性;(6)软件固化。 (2)应用:(1)冰箱、洗衣机、电饭煲、空调、摄影机、DVD播放器等;(2)数控机床、飞机、汽车、电梯、X光机、血压计等;(3)电话机、传真机、打印机、pos机、GPS导航仪、路由器等。 1.1.2嵌入式系统组成与分类 (1)逻辑组成:硬件和软件,分为处理器、存储器、I|0设备与I|O接口,数据总线; (2)处理器:分为主处理器(CPU)和协处

chemkrik的博客 1万+

用电脑通过网口控制keysight示波器

Keysight HD304MSO示波器提供1GHz带宽、14位高精度ADC及10.1英寸触控屏,支持50μV低噪声信号捕获和1.3M波形/秒刷新率。配备4通道探头、逻辑分析仪接口及100Mpts存储深度,含故障诊断、FFT等高级功能。通过网线连接电脑安装TightVNC软件(示波器IP为169.254.163.24)可实现远程控制,相比U盘传输更高效。(149字)

johnboat的专栏 1136

【C语言】关于 static和const的用法

解释C语言中static和const的用法

宁清的博客 1497

YOLOv8改进策略【YOLO和Mamba】| 2024 VM-UNet,高效的特征提取模块VSS block 二次创新提高精度

VM-UNet模型设计的出发点是解决现有CNN-based和模型在医学图像分割中的局限性,利用(SSMs)的优势,提出一种更有效的医学图像分割模型。具体来说,CNN-based模型在捕捉长距离信息方面存在不足,而模型由于自注意力机制的二次复杂度导致计算负担较重。SSMs模型如Mamba不仅在建模长距离依赖方面表现出色,还具有线性计算复杂度,这为VM-UNet的设计提供了理论基础。

Limiiiing的博客 618

c/c++:const与static

const: 作用 (1)修饰变量,说明该变量不可以被改变; (2)修饰指针,分为指向常量的指针和指针常量; (3)常量引用,经常用于形参类型,即避免了拷贝,又避免了函数对值的修改; (4)修饰成员函数,说明该成员函数内不能修改成员变量。 class A { private: const int a; // 常对象成员,只能在初始化列表赋值 p...

OYhuahua的博客 313

Spine骨骼动画查看器 - Skeleton Viewer

骨骼动画是现代游戏和动画制作中常用的技术之一。Spine骨骼动画查看器(Skeleton Viewer)是一个官方提供的工具,用于查看和调试Spine骨骼动画。本文将介绍Skeleton Viewer的功能和使用方法,并提供相应的源代码示例。通过Skeleton Viewer,开发者可以直观地查看和调试Spine骨骼动画,包括骨骼结构、动画播放和事件触发等。这有助于提高骨骼动画的质量和效果,并加速开发过程。以上代码演示了如何使用Skeleton Viewer查看和播放Spine骨骼动画。

HsvvDatabase的博客 3461

Python 爬虫实战:抓取应届生求职网校招岗位信息,助力学子就业

应届生求职网作为国内知名的招聘平台,汇聚了大量企业的校招岗位信息。了解这些岗位信息,对于应届毕业生制定求职策略、企业制定招聘计划以及相关就业市场分析等都具有重要意义。因此,本文将深入探讨如何运用 Python 爬虫技术从应届生求职网平台抓取校招岗位信息,为应届毕业生提供有益的就业信息支持。本文深入探究了利用 Python 爬虫技术从应届生求职网平台抓取校招岗位信息的全流程。从前期的环境搭建、模拟登录,到核心的数据抓取、存储,再到后续的数据分析与可视化,都详细展开讲解并提供代码支持。

u014481728的博客 1300

C++中const 、static、 static const和const static的初始化以及修改问题

转载自  http://blog.bccn.net/zpcdbc/categories/119746 一、const、static、static const、const static变量的初始化 Ⅰ.const的初始化 (1)只有这一种情况const变量可以不在声明的同时定义,那就是const变量作为类的数据成员出现时。例如: class Myclass { cons in

bjyddxhfxq的博客 7149

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

static, const, static const 与 const static

1. static const/ const static, 意义一样 namespace NdpiTransformersTest { class TestMain { public: ~TestMain(); static int run(int argc, const char** argv); private: static ConfigMgmtDataTypes::Co...

wenmin_shu的专栏 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

const与static

const与static的理解

qq_61605392的博客 1914

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

const static 与static const的使用

 查看文章  C++ static、const和static const 以及它们的初始化2010-03-29 15:30C++   static、const和static const 以及它们的初始化(2010-02-16 17:27:47)转载标签:cstaticconst初始化it分类:学习c++<br />const定义的常量在函数执行之后其空间会被释放,而static定义的静态常量在函数执行后不会被释放其空间。<br />static表示的是静态的。类的静态成员函数,成员变量是和类相关的,不是和类

weishan521520的专栏 2万+

C++中的 const和static 以及 static const 和const static

对于C/C++语言来讲,const就是只读的意思,只在声明中使用;static一般有2个作用,规定作用域和存储方式.对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见;对于static函数也是在当前模块内函数可见. const定义的常量在函数执行之后其空间会被释放,而static...

mhjie1998的博客 3216

static、const和static const

本文转载自http://hi.baidu.com/sytarchen/item/c7cc767968b5ee3471442342  const定义的常量在函数执行之后其空间会被释放,而static定义的静态常量在函数执行后不会被释放其空间。 static 表示的是静态的。类的静态成员函数,成员变量是和类相关的,不是和类的具体对象相关,即使没有具体的对象,也能调用类的

l494926429的博客 2874

static、const、static const分析

const与static的含义: const定义的常量在超出其作用域之后其空间会被释放; 而static定义的静态常量在函数执行后不会释放其存储空间。 static表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员变量。一般类的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。 static成...

xupeng1644的博客 1046

【C++】const和static的用法

本文介绍了C++中const与static关键字的用法及其结合应用。const主要用于限制变量/对象的可修改性,包括修饰普通变量、指针、函数参数/返回值、类成员和对象等场景。static则用于改变变量/函数的存储周期或作用域,包括修饰全局变量、局部变量以及类成员变量/函数。两者的结合应用主要体现在"类的静态常量"(static const)上,用于定义类级别的共享且不可修改的常量。文章通过具体代码示例详细说明了各种用法,帮助读者理解这两个关键字的正确使用方式。

2402_88461821的博客 1535

const与static的区别

对于C/C++来说,就是只读的意思,只在声明中使用,意即其所修饰的对象为常量((immutable)),它不能被修改,并存放在常量区。一般有两个作用,规定作用域和存储方式(静态存储)。对于局部变量,static规定其为静态存储方式每次调用的初始值为上一次调用后的值,调用结束后存储空间不释放;对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见,对于static函数也是如此。static修饰的变量如果没有初始化,则默认为0.

量变产生质变 1万+

static, const, static const

static: 在模块内(类) 可见 const: 只读 static const: 以上二者

Ca11i的博客 238

详解static、volatile、const

1、背景 在查阅相关资料的时候,无意间看到一个大佬对于static关键字的讲解,如雷贯耳,写得非常容易理解,这是大佬的链接 本人在学习相关知识的时候,喜欢也习惯把从各种书籍或者是各位大佬的博客中学到的知识用自己的逻辑和自己的语言重新组织一下(当然,如果书中或者各位大佬的描述我觉得非常好理解,我就直接使用啦),方便自己记忆,加深影响。 废话不多说,我们进入正题 2、static关键字介绍 在记录知识点的时候,我喜欢以提问的方式来一层一层地拨开这个知识点的“心”,我个人觉得这样的方式来学习某些知识,能够形成一个

wyttRain的博客 3033

final,static,const差异

Java/Dart中final与static关键字的区别 final和static在Java/Dart中都是常用修饰符,但作用不同: final修饰变量表示引用不可变(对象内容仍可变),保证变量只能赋值一次 static表示类级别成员,不依赖实例可直接通过类名访问 static本身不保证不可变性: static变量可修改(static String url="...") static final组合创建类级别常量(static final String APP_NAME="My

Goals1989的博客 1090

const和static

const允许我们指定一个语义约束,编译器会强制执行这个约束,告诉编译器和其他程序员某值不应该被改变,当某个值确定不可被改变时,我们就应该使用constoperator*声明式: const Rational operator*(const Rational& lhs, const Rational& rhs); Rational a, b, c; (a * b) = c; if (a * b = c) ... 本意可能是判断 a*b 和 c 是否相等,如果不加const,写成=的情况下

kleincode的博客 1423

const和static const的区别

对于C/C++语言来讲, const就是只读的意思,只在声明中使用; static一般有2个作用,规定作用域和存储方式.对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放; 对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见;对于static函数也是在当前模块内函数可见. static const 应该就是上面两者的合集.

小王的博客 2万+

C++ #define、const和static

#define和const的区别 两者区别 (1)作用的阶段而言: #define是在编译的预处理阶段起作用,而const是在编译、运行阶段起作用。 (2)作用的方式而言: #define只是简单的字符串替换,没有类型检查。而const有对应的数据类型,是要进行判断的,可以避免一些低级的错误。 (3)存储方式而言:#define只是进行展开,有多少地方使用,就替换多少次,它定义的宏常量在内存中...

a834595603的博客 666
上一篇: 耳机和音箱有何区别
下一篇: 视频游戏中音频系统的基本功能
cluner
博客等级 码龄24年 1粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值