| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1112 人关注过本帖
标题:MSVC6.0 语法限制过严
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:14 
MSVC6.0 语法限制过严
void inverse(int n,const short stage,short r)
{
char temp[stage];
int i=0;
do {
temp[i] = n%r; // 取 r 进制数个数位上的值
i++; n /= r;
}while(i<stage);//while(n>0);

return 0;
}
MSVC6.0 编译上面的代码出现错误
error C2057: expected constant expression
:twin.cpp(37) : error C2466: cannot allocate an array of constant size 0
error C2133: 'temp' : unknown size
但是在编译器 cfree3.5 ,watcom,和dev-c++ 下编译则没有问题,是不是MSVC6.0 编译器的语法限制过严?
搜索更多相关主题的帖子: 语法 
2007-11-17 09:45
hangeng
Rank: 2
等 级:论坛游民
帖 子:424
专家分:39
注 册:2007-7-23
收藏
得分:0 
dev-C++ 能过吗?

  雨水冲不进窗来,在玻璃上痛哭。但它至少奋斗过。
2007-11-17 09:50
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
是的 ,能通过

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2007-11-17 09:56
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
1。源程序后缀名 .c 而不是 .cpp C++标准不支持变长数组
2。确认你的编译器的选项是 C99

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2007-11-17 09:56
nwpu063417
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:428
专家分:28
注 册:2007-5-11
收藏
得分:0 
以下是引用vfdff在2007-11-17 9:45:19的发言:
void inverse(int n,const short stage,short r)
{
char temp[stage];
int i=0;
do {
temp[i] = n%r; // 取 r 进制数个数位上的值
i++; n /= r;
}while(i<stage);//while(n>0);

return 0;
}
MSVC6.0 编译上面的代码出现错误
error C2057: expected constant expression
:twin.cpp(37) : error C2466: cannot allocate an array of constant size 0

error C2133: 'temp' : unknown size
但是在编译器 cfree3.5 ,watcom,和dev-c++ 下编译则没有问题,是不是MSVC6.0 编译器的语法限制过严?

已经是无返回值声明的函数,怎么还要return 0


2007-11-17 09:57
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
而且程序在 dev-C++下编译错误0,警告0,在MSVC6.0中 编译多了很多的警告

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2007-11-17 09:58
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复:(Knocker)1。源程序后缀名 .c 而不是 .cpp ...
在哪里设置 ??

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2007-11-17 10:00
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
if(count>=START & count<END)
这个语句在 MSVC6.0中 竟然警告要求使用 括号来明确优先级(use parentheses to clarify precedence)

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2007-11-17 10:03
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 

严格不是很好吗……还有,&和>=哪个的优先级高啊?


专心编程………
飞燕算法初级群:3996098
我的Blog
2007-11-17 13:34
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
查了一下书,&amp;是个位操作符,一般是用在处理bit上面的。如果你要用逻辑与(看你的意思好像是这样),应该用&amp;&amp;。编译器提醒你是不是用错了。我觉得这个编译器挺好的~~不过如果你坚持要用&amp;,这个表达式的优先级也是对的…………

专心编程………
飞燕算法初级群:3996098
我的Blog
2007-11-17 13:37
快速回复:MSVC6.0 语法限制过严
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013665 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved