`

全局静态变量 global static variable

    博客分类:
  • C++
阅读更多
全局静态变量与 全局变量的区别在于全局静态变量只能在被本源文件中使用。

[header.h]

static int i = 0;
void setStatic();

[s1.c]

#include <stdio.h>
#include "header.h"

int main(int argc, char *argv[])
{
setStatic();
printf("%d %dn",&i, i);
return 0;
}

[s2.c]

#include <stdio.h>
#include "header.h"

void setStatic()
{
i = 1;
printf("%d %dn",&i, i);
}

gcc header.h s1.c. s2.c

./a.out

就可以看到 s1 和 s2 中i 具有不同的地址空间,也就是两个不同的变量。

分享到:
评论

相关推荐

    全局变量、局部变量、静态全局变量、静态局部变量的区别

    ### 静态全局变量(Static Global Variable) 静态全局变量是使用`static`关键字声明的全局变量。与普通全局变量相比,静态全局变量的作用域仍然为全局,但是其可见性仅限于其所在的源文件。这意味着即使在其他...

    PHP static局部静态变量和全局静态变量总结

    在PHP编程语言中,`static`关键字用于声明两种类型的变量:静态局部变量和全局静态变量。这两种变量在处理函数调用和程序执行流程时具有特殊的行为,使得它们在特定场景下非常有用。 **静态局部变量**: 1. **生命...

    c语言中 static 变量声明作用

    静态数据区的变量包括全局变量和static变量。static变量可以控制变量的可见范围,说到底static还是用来隐藏的。 例如: ```c #include int fun(void) { static int count = 10; return count--; } int count =...

    2023-04-06-项目笔记 - 第六十三阶段 - 4.4.2.61全局变量的作用域-61 -2024.03.05

    3. **文件外的作用域限制**: 有时候为了限制全局变量的可见性,可以使用`static`关键字在声明时将变量声明为静态。这样,即使变量是在一个源文件中声明的,其他文件也无法访问到它。这种情况下,变量仅在其所在文件...

    iphone全局变量配置

    1. 在`.m`文件的全局作用域(即在任何函数或方法之外)声明一个静态变量: ```objc static NSString *globalVariable = @" initialValue "; ``` 2. 在C++或Objective-C++项目中,你可以在`.mm`文件的全局作用域定义...

    c语言全局变量和局部变量问题及解决汇总

    如果要在函数内部访问全局变量,需要使用作用域解析运算符 `::`,例如 `global_variable_name::local_variable_name`。 2. **如何引用一个已经定义过的全局变量?** 要引用一个全局变量,可以在需要使用该变量的...

    第16章、变量作用域和生存期上机指导(实践课).ppt

    printf("Static Global Variable: %d\n", staticGlobalVar); } ``` #### 三、变量生存期 变量生存期是指变量从创建到销毁的时间段。变量的生存期与作用域密切相关,但它们并不是同一个概念。根据变量的存储类型...

    华为笔试题华为笔试题

    - 全局变量和静态变量存储在静态区(static area),程序运行期间始终存在。 - 动态分配的数据(如使用`malloc`或`calloc`申请的内存)存储在堆(heap)中,需要程序员手动释放。 7. 数据结构的大小计算: 在32...

    DELPHI里面的技巧如何运行的时候给常量赋值

    但是,有一种方法可以模拟运行时给“常量”赋值的效果,那就是使用静态变量(Static Variable)。静态变量与常量相似,它们在内存中的位置也是固定的,但其值可以在运行时改变。这里是如何实现的: ```delphi var ...

    C经典面试题

    - **静态区**:用于存储全局变量和静态变量。 - **堆**:用于动态分配的内存空间,通过函数如`malloc()`和`calloc()`等来申请和释放。 #### 7. 结构体与联合体的大小计算 **知识点:** - **结构体与联合体的区别**...

    C语言经典面试大汇总

    - **全局变量**和**静态变量**存放在静态区(静态存储区),程序运行时初始化一次,生命周期直到程序结束。 - **动态申请的数据**(如`malloc`或`calloc`分配的内存)存放在堆(heap)中,需要程序员手动管理释放...

    PHP变量的定义及作用域

    本文将深入探讨这两个概念。 ...例如,我们可以定义一个名为`$name`的变量,并赋值为...局部变量和静态变量通常更安全,也更容易控制。通过熟练掌握这些基本概念,开发者能够更好地驾驭PHP语言,编写出高效而可靠的代码。

    php代码-全局和局部变量的使用

    3. **静态变量**:在函数内部声明并用`static`关键字修饰的变量。即使函数执行结束,静态变量的值也会被保留,下次调用函数时仍可使用。这与全局变量不同,因为静态变量仅在函数内部可见: ```php function ...

    Test for dllexport variable from static lib.

    标题“Test for dllexport variable from static lib.”涉及的是在Windows平台上,从静态库中导出(dllexport)变量的测试。这个话题通常出现在C++编程中,因为C++没有内置的模块系统,开发者需要使用特定的编译器...

    浅谈iOS开发中static变量的三大作用

    当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。 下面是a.c的内容 char a = 'A'; // global...

    php代码-global

    静态变量在每次调用函数时保持其值,而不是像局部变量那样重置。 ```php function countCalls() { static $callCount = 0; $callCount++; echo "Function called: {$callCount} times"; } countCalls(); // ...

    C语言常用术语.pdf

    * Static variable:静态变量,函数内部定义的静态变量。 * Register variable:寄存器变量,CPU寄存器中的变量。 * Automatic variables:自动变量,函数内部定义的自动变量。 * Head file:头文件,包含函数声明和...

    PHP unset()函数用来释放内存

    静态变量在函数或方法内部使用`static`声明,即使函数执行完毕,它们的值也会保留。然而,`unset()`可以删除静态变量,但仅限于当前作用域,下次函数调用时,静态变量的值会恢复。 `unset()`不会返回任何值,也不...

    PHP教程 变量定义

    - 静态变量(Static):在函数内部声明的,即使函数执行结束,静态变量的值也会被保留,下次函数调用时仍然存在。 - 预定义变量:PHP提供了一些预定义的全局变量,如 `$_GET`、`$_POST` 用于处理HTTP请求数据。 ...

Global site tag (gtag.js) - Google Analytics