const extern static

简介: <h1 style="margin:0px; padding:0px; font-family:Arial; line-height:26px">const</h1> <div style="font-family:Arial; font-size:14px; line-height:26px">const最好理解,修饰的东西不能被修改</div> <div style="font-f

const

const最好理解,修饰的东西不能被修改
指针类型根据位置的不同可以理解成3种情况:

I 常量指针

// 初始化之后不能赋值,指向的对象可以是任意对象,对象可变。
NSString * const pt1;

II 指向常量的指针

// 初始化之后可以赋值,即指向别的常量,指针本身的值可以修改,指向的值不能修改
const NSString * pt2;

III 指向常量的常量指针

const NSString *  const pt3;

extern

等同于c, 全局变量的定义
//x .h 声明
extern const NSString * AA;

//x .m 定义
const NSString * AA = @"abc";

// 调用
#import "x.h"
或者再次申明
extern const NSString * AA;

static

等同于c,将变量的作用域限定于本文件?
不同于java C++里面的 类变量,oc没有类变量

疑问

[cpp]  view plain copy
  1. static const NSString * const ChatWindow_STR_TITLE_INDEX[] = {  
  2.     @"msg_type_all",   
  3.     @"msg_type_area",   
  4.     @"msg_type_PM",   
  5.     @"msg_type_team",  
  6.     @"guild_title",  
  7.     @"msg_type_system",  
  8.     @"msg_type_world"  
  9. };  

我在.h文件里定义一个static变量,

I .h初始化

在不同的.m里调用都有值,这些值是否同一个对象?

【不同的对象】

II .m里初始化(or赋值)

初始化的值只在.m文件里有效果,即等同于c,将变量的作用域限定于本文件

其他.m文件调用的值都没有赋值。

【不同的对象】


结论

static

    // static变量属于本类,不同的类对应的是不同的对象

    // static变量同一个类所有对象中共享,只初始化一次

const

    // static const变量同static的结论I,只是不能修改了,但是还是不同的对象

    // extern const变量只有一个对象,标准的常量的定义方法

    // extern的意思就是这个变量已经定义了,你只负责用就行了

目录
相关文章
|
存储 自然语言处理 数据可视化
可视化FAISS矢量空间并调整RAG参数提高结果精度
随着开源大型语言模型的性能不断提高,编写和分析代码、推荐、文本摘要和问答(QA)对的性能都有了很大的提高。但是当涉及到QA时,LLM通常会在未训练数据的相关的问题上有所欠缺,很多内部文件都保存在公司内部,以确保合规性、商业秘密或隐私。当查询这些文件时,会使得LLM产生幻觉,产生不相关、捏造或不一致的内容。
492 0
|
存储 NoSQL Java
什么是Cookie与Session之Session详解
什么是Cookie与Session之Session详解
1001 0
|
11月前
|
消息中间件 人工智能 搜索推荐
《主动式智能导购AI助手构建》解决方案评测
一文带你了解《主动式智能导购AI助手构建》解决方案的优与劣
307 17
|
SQL 缓存 分布式计算
C#如何处理上亿级数据的查询效率
C#如何处理上亿级数据的查询效率
287 2
|
SQL 监控 关系型数据库
实时计算 Flink版产品使用问题之如何查看作业实时流入的带宽大小
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
监控 安全 网络安全
蓝易云 - 服务器遭受攻击,CPU升高,流量升高,你一般如何处理
以上步骤可以帮助你处理服务器遭受攻击的情况,但具体的方法可能会根据你的网络环境和攻击类型有所不同。
243 2
System Generator学习——将代码导入System Generator(二)
System Generator学习——将代码导入System Generator
200 1
|
监控 网络协议 Unix
深入探索Linux的lsof命令
在Linux系统中,了解哪些文件被哪些进程打开对于系统管理和问题诊断是极其重要的。这正是`lsof`命令,即List Open Files,发挥其强大功能的场景。本文旨在详细介绍`lsof`的起源、底层原理、参数意义,常见用法,并详解其返回结果的每个字段含义。此外,我们将讨论在使用`lsof`命令时需要注意的事项。
|
人工智能 安全 架构师
2023云栖大会 | 阿里云无影打造企业云新生态,携手合作伙伴共话云上解决方案
2023云栖大会上,阿里云宣布无影全新升级2.0,对整体工具层、架构层和应用层进行全方位的重构和创新,并发布了无影企业云平台。11月1日的无影生态合作专场发布了产品伙伴合作计划,与首批企业云生态合作伙伴TCL、乐播投屏、贝锐向日葵、紫猫云电脑、广闻实业共同探讨如何基于企业云平台打造定制化的云电脑产品及解决方案,助力千行百业数字化。
1575 4
|
安全 大数据 云计算
如何快速高效全面的学习云计算和虚拟化技术
如何快速高效全面的学习云计算和虚拟化技术
474 0

热门文章

最新文章