全局变量.extern/static/const区别与联系 编译单元(模块):     在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌 入式下做开发工作的话,那么你可能非常的理解编译与连接的区别! 当在VC这样的开发工具上编写完代码,点击编译按钮准备生成exe文件时,V…
extern static const abstract virtual const const.常量,初始化过后值不能再变化的变量.…
const的作用: const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p). 被const修饰的变量是只读的. static的作用: 修饰局部变量: 1.延长局部变量的生命周期,程序结束才会销毁. 2.局部变量只会生成一份内存,只会初始化一次. 3.改变局部变量的作用域. 修饰全局变量 1.只能在本文件中访问,修改全局变量的作用域,生命周期不会改 2.避免重复定义全局变量 3..pch生成的全局变量是每个文件一份,所以修改所在文件的全局变量并不能跨文件修改 extern的作用 只是用来…
1.const的作用: const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p). 例如 NSString *const SIAlertViewWillDismissNotification;修饰的是SIAlertViewWillDismissNotification 被const修饰的变量是只读的 2.static的作用: 修饰局部变量: 1.延长局部变量的生命周期,程序结束才会销毁. 2.局部变量只会生成一份内存,只会初始化一次. 3.改变局部变量的作用域. 修饰全局变量 1.只能在…
extern用法详解: 1. 声明外部实体 声明外部全局变量或对象,一般用于头文件中,表示在其它编译单元内定义的变量,链接时进行外部链接,如: extern int ivalue; 此时的extern是必须的,省略了extern编译器将视为定义而不是声明,一般地在源代码中定义变量并进行初始化,在头文件中使用extern声明变量. 类似地用于声明外部全局函数,表示该函数在其它编译单元中定义,如: extern void func( void ); 此时的extern可以省略. 2. 声明函数的编译…
一.const 1>对于const,记住关键的一点,它只是修饰右边的变量. 例如: - (void)viewDidLoad { [super viewDidLoad]; // const两种用法 // const:修饰基本变量p // 这两种写法是一样的,const只修饰右边的基本变量b ; // b:只读变量 ; // b:只读变量 // const修饰指针变量访问的内存空间,修饰的是右边*p1, // 两种方式一样 const int *p1; // *p1:常量 p1:变量 int con…
1:全局常量的定义:1:创建Header头文件,再创建与Header头文件类名相同的空文件作为.m文件,.h文件引用文件,.m文件负责定义常量 #import <UIKit/UIKit.h> UIKIT_EXTERN const CGFloat XMGRed; UIKIT_EXTERN const CGFloat XMGGreen; UIKIT_EXTERN const CGFloat XMGBlue; UIKIT_EXTERN const CGFloat XMGAlpha; UIKIT_EX…
目录 define.const static define.const 在 C++ 中,const 和 define 都可以用来定义常量.但是这二者之间有很大的区别: define 的作用 用 define 定义的常量是没有 类型 的,编译器只是把所定义的常量值和这个常量的名字联系起来,编译器在编译的过程中只是把 常量名替换成对应的常量值,所有用到的地方都拷贝替换. const 作用 使用 const 定义的常量是 有类型的,这个值存放在了 内存的静态区域中. 具体来说,二者具有以下这些方面的区…
const extern static 终极指南 不管是从事哪种语言的开发工作,const extern static 这三个关键字的用法和原理都是我们必须明白的.本文将对此做出非常详细的讲解. const const是这三个中最简单的一个关键字.主要用于声明常量.常量和变量的样子没什么两样,只是前者的值是不可修改的. 举个例子: int const a; const int a; 这两条语句都把a声明为一个整数,它的值不能被修改,在这里,这两条语句是等价的,只是表现形式不同. 那么问题来了,既…
static 全局的,可以改的,如果在一个类中声明static,类中其他地方用到的时候,也是使用的改变量.和java类似,但不能用类名直接访问. const 是常量,不可以改的 extern 1.假如其他a类中已经声明了meString,你在另外一个b类中想使用这个变量,可以extern NSString* meString;会得到a类中同样的值,且可重新赋值.(参考点击打开链接 参考:点击打开链接 2.就是它的字面意思外部的,不是扩展,如果外部没定义是不能用的,当然还有一个其他用法extern…