关于C语言中的关键字(static)的问题

钟荣春 发布于 2015/03/15 19:57
阅读 267
收藏 0

下面是我的代码

#include <stdio.h>
void fun1(void)
{
   static int i = 0;
   i++;
}


int main()
{
   int k;
   for (k=0;k<1;k++)
   {
      fun1();
   }
   return 0;
}
我想问最后i有没有值?有点话,这个值是多少?

在VC6.0中出现这个问题是什么原因?

问题:Error:symbol i not f0und.

VC6.0 CXX0017:Error:symbol "xxx" not found 

VC6.0 CXX0017:Error:symbol "xxx" not found

VC6.0 CXX0017:Error:symbol "xxx" not found

加载中
0
0-1
钟荣春
钟荣春
在VC中运行的结果是 i 没有值。
0
m
magiclogy

我用的编译器是MSVC12:

用于 x86 的 Microsoft (R) C/C++ 优化编译器 18.00.31101 版版权所有(C) Microsoft C

orporation。  保留所有权利。


结果是1。

VC6真的是挺老的。。。

0
虬髯客

静态存储类型在有系统分配内存,直到程序结束,内存空间才被释放。

但是它是局部变量,在作用域外不可见。

0
木子叶
木子叶
看你下面大字部分的错误提示,出错看起来不像和静态局部变量i有关啊。会不会是你的文件名后缀有问题啊,我在Linux下用gcc编译相同的代码在.c或.cpp后缀名下都没问题
0
此号作废
此号作废

函数内的static变量作用域是本函数

VC6.0 CXX0017:Error:symbol "xxx" not found 

你这个错误是不是"i" not found?在main函数里打印i值了?

钟荣春
钟荣春
不是,在查看内存的值的时候报错的。
0
lln133208
lln133208
作用域和存储时间不是一个概念啊
返回顶部
顶部