首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

static变量的定义有关问题

2012-09-22 
static变量的定义问题?C++编程思想中有段程序是这样的C/C++ codeint fibonacci(int N){const int sz100a

static变量的定义问题?
C++编程思想中有段程序是这样的

C/C++ code
int fibonacci(int N){    const int sz=100;    assert(N<sz);    static F[sz];    F[0]=F[1]=1;    int i;    for (i=0;i<sz;i++)    {        if (F[i]==0)        {            break;        }    }    while (i<=N)    {        F[i]=F[i-1]+F[i-2];        i++;    }    return F[N];}

static F[sz];

没指定类型,这样定义它会是什么类型?我用的编译器是VC6.0没报错,执行也没问题

[解决办法]
默认int型,可以用typeid测试其类型
cout<<typeid(F).name()<<endl;
[解决办法]
在C里面没有指定类型则默认是int类型
但是C++里面是不行的
[解决办法]
另外楼主说VC6可以通过,那是因为VC6是再C++标准之前就推出了,没有遵循标准

C++标准里明确说明了这个默认int不行
[解决办法]
基本上新一点的vc编译器都会提示:Note: C++ does not support default-int
[解决办法]
c语言是可以default int 的 vs2008测试通过
C++不行!!!!

热点排行