|
发表于 2005-4-10 18:22:48
|
显示全部楼层
Post by 无双
2。“static”关键字,在C语言中是什么含义?
表示使用静态的存储 也就是在程序中从程序开始运行 到程序退出 这个关键字定义的内存块一直存在在栈中 随时可以访问
static的本地变量生存周期是整个进程的生存周期的
不过不在stack里,而在bss段,可以写个小程序编译好之后用nm 查看验证
只对本函数可见,而且不会同其他函数里的同名变量冲突
不过这只是编译器有用,不代表别的函数不能访问它
- int *func(){
- static int i;
- printf("%d\n", i);
- return &i;
- }
- int main(){
- int *i;
- i = func();
- *i=1;
- func();
- }
复制代码
stack先进后出,时长时消,要在stack保存有permanent storage的而且出现时机不能预知的变量,岂不是自找麻烦
这些东西应该是一个程序员最基础的基本功
浮躁阿 |
|