函数内定义的static变量怎样在外部访问和修改
2007-05-08 20:59
736 查看
可以在外部,定义一个全局指针变量,在定义了static变量的函数内部,将static变量的地址付给指针。
多个文件时,用extern声明指针。
注意:extern 和 static本身就是对立的关键字,使用extern就是为了不同文件都可使用该变量或者函数.使用static关
键字就是为了限制原文件使用,其它文件不可使用.
所以extern和static关键字不可同时使用的.
小例子:
//tset.cpp
#include <iostream.h>
int *p;
void f();
int main()
{
f();
cout<<*p<<endl;
*p += 1;
cout<<*p<<endl;
return 0;
}
//test1.cpp
extern int* p;
void f()
{
static int i = 0;
p = &i;
// return &i;
}
输出:0 1
多个文件时,用extern声明指针。
注意:extern 和 static本身就是对立的关键字,使用extern就是为了不同文件都可使用该变量或者函数.使用static关
键字就是为了限制原文件使用,其它文件不可使用.
所以extern和static关键字不可同时使用的.
小例子:
//tset.cpp
#include <iostream.h>
int *p;
void f();
int main()
{
f();
cout<<*p<<endl;
*p += 1;
cout<<*p<<endl;
return 0;
}
//test1.cpp
extern int* p;
void f()
{
static int i = 0;
p = &i;
// return &i;
}
输出:0 1
相关文章推荐
- 定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数
- static(c中定义的关键字1、被其修饰者 外部无法使用(相反的都可以使用extern在外部使用) 2、函数局部变量使用成为静态的放入静态池-生存期改变。c++进行了扩充,使它在类中有了特殊作用)
- c++ 函数内定义变量返回 static
- js使用闭包时,内部函数是直接访问外部函数的实际变量而非复制一份新变量
- C++使用static的错误:无法解析的外部符号、“static”不应在文件范围内定义的成员函数上使用 .
- C怎样定义和声明全局变量和函数最好?
- 内部函数引用外部函数的同名变量或者全局变量,并且对这个变量有修改的报错原因
- php类成员函数中访问类外定义的变量
- 类的static成员变量和成员函数能被继承吗? 友元函数能访问父类的private变量吗?那static成员函数能是纯虚函数吗,能被继承吗?
- 怎样定义和声明全局变量和函数最好?
- 父类中调用自身定义的虚函数,其中若修改派生类定义的变量,无效
- Python3基础 nonlocal关键字 内部函数访问到外部函数的变量
- JavaScript闭包函数访问外部变量的方法
- C++使用static的错误:无法解析的外部符号、“static”不应在文件范围内定义的成员函数上使用
- C++ 在函数中用static定义的变量的
- 在同一个类中的普通成员函数中调用static 成员变量,linker出错,无法解析的外部命令?
- 变量的存储类别、内外部函数【static\extern】
- C++使用static的错误:无法解析的外部符号、“static”不应在文件范围内定义的成员函数上使用
- VC++6.0中定义一个类的对象后,用“.”访问其成员函数和成员变量时,其成员函数和成员变量没有自动弹出
- JavaScript闭包函数访问外部变量的方法