静态标志Static

1、静态全局变量(又称全局静态变量):

(1)               静态全局变量的定义:在全局变量前加一个static,使该变量只在这个源文件中可用。

(2)全局变量与全局静态变量的区别:

(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。

(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。

(3)静态全局变量的作用:

(a)不必担心其它源文件使用相同变量名,彼此相互独立。

(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改。

例如:一个程序由两个源文件组成,其中在一个源文件中定义了“int   n;”,在另一个源文件中定义了“static   int   n;”则程序给它们分别分配了不同的空间,两个值互不干扰。

例如:下面在file1.cpp中声明全局变量n,在file2.cpp中定义全局静态变量n。文件file1.cpp和file2.cpp单独编译都能通过,但连接时,file1.cpp中的变量n找不到定义,产生连接错误。

//   file1.cpp

#   include   <iostream.h>

void   fn()

extern   int   n;

void   main()

{

n=20;

cout < <n < <endl;

fn();

}

//   file2.cpp

#   include   <iostream.h>

static   int   n;     //   默认初始化为0,注意此处定义的n   只能在file2.cpp中使用。

void   fn()

{

n++;

cout < <n < <endl;

}

2、静态函数:使某个函数只在一个源文件中有效,不能被其他源文件所用。

定义:在函数前面加上static。

说明:函数的声明和定义默认情况下在整个程序中是extern的。

静态函数的效果:

(1)它允其他源文件建立并使用同名的函数,而不相互冲突。

(2)               声明为静态的函数不能被其他源文件所调用,因为它的名字不能得到。

时间: 2024-10-09 22:12:31

静态标志Static的相关文章

c语言:利用静态变量static,输出1到5的阶乘值

利用静态变量static,输出1到5的阶乘值. 解:程序: #include<stdio.h> int fac(int n) { static int f=1; f = f*n; return f; } int main() { int i; for (i = 1; i <=5; i++) { printf("%d!=%d\n",i,fac(i)); } return 0; } 结果: 1!=1 2!=2 3!=6 4!=24 5!=120 请按任意键继续. . .

C++ 静态存储周期(static storage duration)

拥有静态存储周期(static storage duration)的对象将会被一直保存到程序结束. 声明 存储类型说明符(static)用于声明对象拥有静态存储期(static storage duration). 存储类型说明符(static)只可以用于对象,函数和匿名联合体. 块作用域中不能声明静态函数,也不能声明静态函数参数. void func(static int tag){ cout<<tag<<endl; { static void nonStaticFunc(int

静态block/static block添加至产品描述页的tab方法

magento 产品描述页新增一个tab,调用静态block/static block 内容的方法: 1. 在管理后台的 cms-->static block 新增一个 静态block, 注意创建的 identifier 名称, 这里我假设创建了一个identifier为 shipping 的静态block 2. 创建模型文件:在自己的模版目录的template文件夹里面,新创建一个文件夹为 myblock,在里面新建一个phtml类型的文件,比如 shipping.phtml 3. 打开shi

cocos2d-x 静态变量 static

在cocos2d-x的.h文件里声明静态(static)变量时,编译运行的时候会出现“无法解析”的错误,这是因为我们错误的引用C++习惯,将静态(static)变量声明在头文件中导致的错误. #ifndef _A_H_ #define _A_H_ #include "cocos2d.h" class A{ public: static int getInt(); //获取创建的静态(static)变量 protected: A(); ~A(); }; #endif #include &

C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern)。

除法运算中注意: 如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2:而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000. 取余运算中注意: 该运算只适合用两个整数进行取余运算,如:10%3 = 1:而10.0%3则是错误的:运算后的符号取决于被模数的符号,如(-10)%3 = -1;而10%(-3) = 1. -- 1.  用关键字auto定义的变量为自动变量,auto可以省略,auto不写则隐含定为"自动存储类别",属于动态存储方式

iOS 元件组件-创建静态库static library

概述 在项目开发的过程中,经常使用静态库文件.例如两个公司之间业务交流,不可能把源代码都发送给另一个公司,这时候将私密内容打包成静态库,别人只能调用接口,而不能知道其中实现的细节. 库是一些没有main函数的程序代码集合.除了静态库,还有动态链接库,他们之间的区别是:静态库可以编译到我们的执行代码中,应用程序可以在没有静态库的环境中运行:动态库不能编译到我们的执行代码中,应用程序必须在有链接库文件的环境下运行.另外,动态库在AppStore里,很有可能被拒绝,上架不了. 因而,一般情况下,我们都

理解静态局部变量(static)在程序中的执行规则

#include "stdio.h" /*目的: 认识静态局部变量 static !!!*/ int f(int a) { auto b = 0; static int c = 3; b = b + 1; c = c + 1; printf("\tc = %d\t",c ); return(a + b + c); } int main() { int a = 2, i; for (i = 0; i < 3; i++) { printf("f(a) =

Django静态文件static的配置

Django静态文件static的配置 static文件夹的作用 ? static文件夹一般用于存放css,js,图片等静态文件 配置方式 ? 1.创建static文件夹 ? 2.在settings.py文件中新建一项(如果有则无需新建) STATIC_URL = '/static/' ? 3.在settings.py文件中新建一项 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] ? 4.引用静态文件中的文件 ? 列如引用一个cs

第六节 静态的(static)和单例模式

main函数 主函数是一个特殊的函数,作为程序的入口,可以被jvm(虚拟器)调用 主函数的定义 public 表示该函数的访问权限是最大的. static 代表主函数随着类的加载就已经存在了. void 主函数没有具体的返回值. main 不是关键字,但是是一个特殊的单词,但是可以被jvm识别. 参数(String[] args) 参数的类型是一个数组,该数组的元素是String args 参数名,所以可以改,args 全称arguments. 主函数是固定格式的,为了使jvm识别. jvm在调