`
bluefivecn
  • 浏览: 11672 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

全局变量

阅读更多
http://blog.ablepear.com/2009/12/objective-c-tuesdays-global-variables.html

任何声明在函数或者方法之外的变量都是全局变量:
int count1; // 全局

int main(int argc, char *argv[]) {
  int count2; //  main()中局部
  ...
}

初始化:缺省情况下,全局变量初始化为0.对于指针类型(包括C字符串)NULL是默认值;对于Objective-C的对象指针,默认是nil.(这和局部变量不同,局部变量不保证有初始值,因此应该显示初始化.)

一个全局变量能在被定义时赋一个初始值,但有一个限制:初始值必须是编译器在编译时能计算得到值.通常,这意味着你只能使用字面值,像数字,字符和字符串,并且你只能使用基本的算术运算符.下面是一些全局变量初始化的例子:
int count; // defaults to 0
int daysPerYear = 365;
int secondsPerDay = 24 * 60 * 60;

不幸的是你不能调用函数或者方法或者使用其他的变量给一个全局变量赋初始值.下面是一些非法初始化赋值的例子:
// WARNING: WON'T COMPILE

// ERROR: function call not allowed
size_t titleLength = strlen("Objective-C Tuesdays");

// ERROR:  method call not allowed
NSUInteger subtitleLength = [@"global variables" length];

// ERROR:  calculation uses other global variables
unsigned long totalLength = titleLength + subtitleLength;

这个限制意味着全局Objective-C对象类型不能在声明时进行初始化:
// WARNING: WON'T COMPILE
NSArray *array = [[NSArray alloc] initWithObjects:@"one", @"two", nil];

只有一个例外:NSString全局变量能用Objective-C字符串初始化:
NSString *title = @"Objective-C Tuesdays";

如果你需要对全局变量做一些复杂的初始化,唯一的选择是程序开始的时候显示地初始化.通常有一些地方来做这些工作:
  • main()函数的开始
  • 在你应用的代理的-init方法中
  • 在你应用的代理的-applicationDidFinishLaunching:方法中
  • 在你的classes的+initialize 方法中

如果一个全局变量与一个特定的类相关,这个类的+initialize 方法是旋转相关代码的好地方.
分享到:
评论

相关推荐

    定义全局变量 变量 全局

    在MFC(Microsoft Foundation Classes)框架中,全局变量和函数的使用与标准C++有所不同,因为MFC工程通常由多个文件组成,需要一种方法来在这些文件之间共享数据和功能。这里将介绍两种在MFC工程中定义全局变量和...

    labview功能性全局变量的详细使用

    LabVIEW功能性全局变量是开发大型、复杂应用时非常重要的数据通信工具。它们允许在不同的VI(虚拟仪器)之间共享数据,解决了局部变量在多线程环境下可能出现的数据竞争问题。本篇将详细介绍LabVIEW功能性全局变量的...

    C++中类使用全局变量

    在C++编程语言中,全局变量是在程序的任何作用域之外声明的变量,可以在程序的多个函数或类中被访问。它们在整个程序的生命周期内都存在,从程序开始执行到结束时保持其值。全局变量的使用有其优点,如共享数据和...

    C++全局变量初始化的一点总结

    C++中的全局变量初始化是一个重要的话题,涉及到程序的正确性和可预测性。全局变量,即具有静态存储期的变量,其生命周期始于程序开始,终于程序结束。本文将深入探讨全局变量初始化的时机、方式以及一些处理特殊...

    C/C++ 跨文件共享全局变量Demo

    在C/C++编程中,跨文件共享全局变量是一项常见的需求,尤其在大型项目或模块化设计中。全局变量能够在程序的任何地方被访问,而跨文件共享则意味着这些变量可以在不同的源文件之间传递数据。本Demo将展示如何在C/C++...

    微信小程序全局变量改变监听的实现方法

    当时想到的就是使用全局变量,在 app.js 中定义好全局变量,点击组件页面时就修改全局变量的值,父页面同样使用全局变量的值,这样一来就可以动态打开/关闭弹出层且传递值了。 下面先看看 app.js 中怎么定义的: ...

    易语言源码易语言汇编设置全局变量源码.rar

    1. 定义全局变量:在易语言中,可以使用“定义”关键字来声明全局变量,如“定义 整数型 全局变量A”,这会在程序开始时自动分配内存空间并初始化为默认值。 2. 使用全局变量:在程序的任何地方,只要正确引用全局...

    采用全局变量方式实现多线程的通信

    全局变量作为一种简单的方式被用于实现线程间的通信,尤其是在MFC(Microsoft Foundation Classes)框架下。下面我们将深入探讨如何利用全局变量进行多线程通信以及涉及的相关知识点。 首先,我们要理解什么是全局...

    C语言面试题大汇总之华为面试题:1、局部变量能否和全局变量重名;2、如何引用一个已经定义过的全局变量;3、全局变量可不可以定义在可被多个.C文件包含的头文件中 为什么;4、语句for( ;1 ;)有什么问题 它是什么意思……

    局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。在同一个函数内可以定义多个同名的局部变量,每个局部变量的作用域就在那个循环体内。 二、extern关键字 extern...

    QT 使用全局变量的方法 - 郭小郭的专栏 - CSDN博客1

    QT 使用全局变量的方法 在QT编程中,全局变量的使用有时是必要的,特别是在需要在不同类或函数之间共享数据的情况下。然而,全局变量的使用应该谨慎,因为它们可能破坏封装性和增加代码的复杂性。以下是两种在QT中...

    在C/C++项目中使用全局变量的方法

    ### 在C/C++项目中使用全局变量的方法 #### 概述 在开发C/C++项目时,有时需要在多个源文件之间共享数据或状态信息。全局变量作为一种简单且直观的数据共享方式,在某些场景下非常实用。然而,不当的使用全局变量...

    Discuz_$_G全局变量

    Discuz是一款广泛应用于社区论坛建设的开源软件,其核心组件之一是$_G全局变量。这个全局变量在Discuz系统中扮演着至关重要的角色,它存储了论坛运行过程中的各种信息,便于开发者在模板和插件开发中快速获取和操作...

    altium designer 过程中全局变量的编写

    在使用Altium Designer进行PCB设计时,经常会遇到需要批量修改多个相同器件属性的情况,这时候全局变量和全局编辑功能就显得尤为重要。 全局变量是Altium Designer中的一种机制,允许用户定义和管理能够在整个设计...

    VB 全局变量举例

    在VB(Visual Basic)编程语言中,全局变量是一种在整个程序范围内都可以访问的变量。与局部变量(仅在特定函数或子程序中有效)不同,全局变量可以在任何模块、窗体或标准模块中被调用,这使得它们在存储和传递数据...

    解决C++全局变量只能初始化不能赋值的问题

    C++中,全局变量只能声明、初始化,而不能赋值 也就是说,下面这样是不被允许的: #include using namespace std; int a; a = 2; int main() { return 0; } 错误提示是: C++ requires a type specifier for all...

    VC中的全局变量.doc

    全局变量在VC++编程中是一种常见但需谨慎使用的数据存储方式。它们可以在程序的不同函数或模块之间共享,不受函数调用的影响,具有全局可见性。然而,过度依赖全局变量可能会导致代码可读性下降、调试困难以及潜在的...

    labview局部变量与全局变量

    本压缩包包含有关LabVIEW局部变量和全局变量的重要知识资源,非常适合想要深入理解和掌握这两种变量用法的学习者。 **局部变量(Local Variables)** 在LabVIEW中,局部变量是在函数或子VI内部定义的,它们的作用...

    C语言中如何使用全局变量示例

    在C语言中,全局变量是一种在整个程序中都可访问的变量。它们的作用域从定义它们的位置开始,直到程序结束。全局变量在程序的生命周期内一直存在,即使在函数调用结束后也不会被销毁。下面我们将详细探讨如何在C语言...

    局部变量和全局变量总汇

    ### 局部变量和全局变量知识点详解 #### 一、局部变量与全局变量的基本概念 **局部变量**指的是在函数内部定义的变量,其作用域仅限于该函数内部。这意味着,局部变量只能在其被定义的函数内部访问,并且在函数...

Global site tag (gtag.js) - Google Analytics