static变量的定义问题?

dic_008 2012-08-27 03:39:01
C++编程思想中有段程序是这样的

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没报错,执行也没问题
...全文
239 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
missamua 2015-01-18
  • 打赏
  • 举报
回复
在linux下编译提示错误 未指定类型
dic_008 2012-08-27
  • 打赏
  • 举报
回复
VC6.0就是有点2,没办法公司为了保持统一就让用这
[Quote=引用 2 楼 的回复:]
默认int型,可以用typeid测试其类型
cout<<typeid(F).name()<<endl;
[/Quote]
dic_008 2012-08-27
  • 打赏
  • 举报
回复
美国佬在追求奇技淫巧??
[Quote=引用 12 楼 的回复:]
自己写程序的时候,乖乖的明确写上类型就好了。不去追求这些奇技淫巧。
[/Quote]
无事所所 2012-08-27
  • 打赏
  • 举报
回复
c语言是可以default int 的 vs2008测试通过
C++不行!!!!
xiakeliangjian 2012-08-27
  • 打赏
  • 举报
回复
建议不要再用vc6了,在一些问题上运行结果不同的。
northcan 2012-08-27
  • 打赏
  • 举报
回复
基本上新一点的vc编译器都会提示:Note: C++ does not support default-int
northcan 2012-08-27
  • 打赏
  • 举报
回复
自己写程序的时候,乖乖的明确写上类型就好了。不去追求这些奇技淫巧。
sowhat_Ah 2012-08-27
  • 打赏
  • 举报
回复
vs2008编译不行,估计vc6标准不同,没有是默认int型的。
RabbitLBJ 2012-08-27
  • 打赏
  • 举报
回复
另外楼主说VC6可以通过,那是因为VC6是再C++标准之前就推出了,没有遵循标准

C++标准里明确说明了这个默认int不行
RabbitLBJ 2012-08-27
  • 打赏
  • 举报
回复
在C里面没有指定类型则默认是int类型
但是C++里面是不行的
漫步者、 2012-08-27
  • 打赏
  • 举报
回复
不要用6.0,害死人
kbh1984 2012-08-27
  • 打赏
  • 举报
回复
默认是int类型,如果是用vs2008就编译不过了
cs74184235 2012-08-27
  • 打赏
  • 举报
回复
同意楼上说法
Corner 2012-08-27
  • 打赏
  • 举报
回复
但是不是每个编译器都支持默认类型
Corner 2012-08-27
  • 打赏
  • 举报
回复
默认int型,可以用typeid测试其类型
cout<<typeid(F).name()<<endl;
dic_008 2012-08-27
  • 打赏
  • 举报
回复
const int sz=100;
这句是这样的
const sz=100;

问题都一样

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧