- 浏览: 87880 次
- 性别:
- 来自: 北京
文章分类
最新评论
全局静态变量与 全局变量的区别在于全局静态变量只能在被本源文件中使用。
[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 具有不同的地址空间,也就是两个不同的变量。
[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 具有不同的地址空间,也就是两个不同的变量。
发表评论
-
undefined reference to `wxColour::IsOk() const'
2009-11-20 16:51 915CXXFLAGS多了一个参数-fvisibility-inli ... -
unsigned signed cast
2009-07-27 18:03 793unsigned 和 signed 一起运算时, signed ... -
negative mod
2009-07-27 17:59 798(-10) % 3 = ? (-10) - (3* -4) ... -
return value of GTK callback function
2009-04-25 20:47 705False: 如果你想在你的Callback 之后继续把si ... -
函数的声明 (Too Much Default Visibility)
2009-04-25 20:47 713函数的使用范围应该得到最大程度的限制,而不是default 的 ... -
Error: No rule to make target XXX
2009-04-25 20:44 3086在Src 目录下new 几个新的目录和文件,Make 就出现上 ... -
about malloc
2009-04-25 20:33 477做了一个调用malloc 分配memory 的小程序. 执行 ... -
when string passing as parameter(const)
2009-04-25 20:28 651It means when you hold the poin ... -
多维pointer 如何free
2009-04-25 20:26 698free 的方法与之前如何 alloc的相关。 * ... -
关于 #include 的位置
2009-04-25 20:26 742是放在*.h or *.c 里面? * 如果是*.h ... -
c++ 编译问题
2009-04-25 20:25 591一个简单的vector 的c++ 程序, 编译错误 #inc ... -
关于二维指针的初始化
2009-04-25 20:23 1419一个初级的问题: char *a; char **arr, ... -
errir: request for member 'XXX' in 'YYY'. which is
2009-04-25 20:23 1070错误的原因好像有两种 1. http://groups.g ... -
inline 声明
2009-04-25 15:54 813inline only 是对complier一种请求,comp ... -
函数参数的 Default value
2009-04-25 15:53 822与 ANSI C 不同,C++的函数参数可以有Default ... -
build-in 变量的初始化
2009-04-25 15:52 712如果是 file scope的build-in 变量会被初始化 ... -
pointer 使用时注意事项
2009-04-25 15:51 741使用pointer前一定要先确认其值是否为0 if (!p) ... -
Pass by reference
2009-04-25 15:50 722C++ 中 函数的参数传递时,如果数据量比较大,即使是没有打算 ... -
伪随机数 pseudo random number
2009-04-25 15:48 893C 语言中的 srand 和 rand * Why ...
相关推荐
### 静态全局变量(Static Global Variable) 静态全局变量是使用`static`关键字声明的全局变量。与普通全局变量相比,静态全局变量的作用域仍然为全局,但是其可见性仅限于其所在的源文件。这意味着即使在其他...
在PHP编程语言中,`static`关键字用于声明两种类型的变量:静态局部变量和全局静态变量。这两种变量在处理函数调用和程序执行流程时具有特殊的行为,使得它们在特定场景下非常有用。 **静态局部变量**: 1. **生命...
静态数据区的变量包括全局变量和static变量。static变量可以控制变量的可见范围,说到底static还是用来隐藏的。 例如: ```c #include int fun(void) { static int count = 10; return count--; } int count =...
3. **文件外的作用域限制**: 有时候为了限制全局变量的可见性,可以使用`static`关键字在声明时将变量声明为静态。这样,即使变量是在一个源文件中声明的,其他文件也无法访问到它。这种情况下,变量仅在其所在文件...
1. 在`.m`文件的全局作用域(即在任何函数或方法之外)声明一个静态变量: ```objc static NSString *globalVariable = @" initialValue "; ``` 2. 在C++或Objective-C++项目中,你可以在`.mm`文件的全局作用域定义...
如果要在函数内部访问全局变量,需要使用作用域解析运算符 `::`,例如 `global_variable_name::local_variable_name`。 2. **如何引用一个已经定义过的全局变量?** 要引用一个全局变量,可以在需要使用该变量的...
printf("Static Global Variable: %d\n", staticGlobalVar); } ``` #### 三、变量生存期 变量生存期是指变量从创建到销毁的时间段。变量的生存期与作用域密切相关,但它们并不是同一个概念。根据变量的存储类型...
- 全局变量和静态变量存储在静态区(static area),程序运行期间始终存在。 - 动态分配的数据(如使用`malloc`或`calloc`申请的内存)存储在堆(heap)中,需要程序员手动释放。 7. 数据结构的大小计算: 在32...
但是,有一种方法可以模拟运行时给“常量”赋值的效果,那就是使用静态变量(Static Variable)。静态变量与常量相似,它们在内存中的位置也是固定的,但其值可以在运行时改变。这里是如何实现的: ```delphi var ...
- **静态区**:用于存储全局变量和静态变量。 - **堆**:用于动态分配的内存空间,通过函数如`malloc()`和`calloc()`等来申请和释放。 #### 7. 结构体与联合体的大小计算 **知识点:** - **结构体与联合体的区别**...
- **全局变量**和**静态变量**存放在静态区(静态存储区),程序运行时初始化一次,生命周期直到程序结束。 - **动态申请的数据**(如`malloc`或`calloc`分配的内存)存放在堆(heap)中,需要程序员手动管理释放...
本文将深入探讨这两个概念。 ...例如,我们可以定义一个名为`$name`的变量,并赋值为...局部变量和静态变量通常更安全,也更容易控制。通过熟练掌握这些基本概念,开发者能够更好地驾驭PHP语言,编写出高效而可靠的代码。
3. **静态变量**:在函数内部声明并用`static`关键字修饰的变量。即使函数执行结束,静态变量的值也会被保留,下次调用函数时仍可使用。这与全局变量不同,因为静态变量仅在函数内部可见: ```php function ...
标题“Test for dllexport variable from static lib.”涉及的是在Windows平台上,从静态库中导出(dllexport)变量的测试。这个话题通常出现在C++编程中,因为C++没有内置的模块系统,开发者需要使用特定的编译器...
当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。 下面是a.c的内容 char a = 'A'; // global...
静态变量在每次调用函数时保持其值,而不是像局部变量那样重置。 ```php function countCalls() { static $callCount = 0; $callCount++; echo "Function called: {$callCount} times"; } countCalls(); // ...
* Static variable:静态变量,函数内部定义的静态变量。 * Register variable:寄存器变量,CPU寄存器中的变量。 * Automatic variables:自动变量,函数内部定义的自动变量。 * Head file:头文件,包含函数声明和...
静态变量在函数或方法内部使用`static`声明,即使函数执行完毕,它们的值也会保留。然而,`unset()`可以删除静态变量,但仅限于当前作用域,下次函数调用时,静态变量的值会恢复。 `unset()`不会返回任何值,也不...
- 静态变量(Static):在函数内部声明的,即使函数执行结束,静态变量的值也会被保留,下次函数调用时仍然存在。 - 预定义变量:PHP提供了一些预定义的全局变量,如 `$_GET`、`$_POST` 用于处理HTTP请求数据。 ...