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 编译器的语法限制过严?
搜索更多相关的解决方案:
语法
----------------解决方案--------------------------------------------------------
dev-C++ 能过吗?
----------------解决方案--------------------------------------------------------
是的 ,能通过
----------------解决方案--------------------------------------------------------
1。源程序后缀名 .c 而不是 .cpp C++标准不支持变长数组
2。确认你的编译器的选项是 C99
----------------解决方案--------------------------------------------------------
以下是引用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 编译器的语法限制过严?
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
----------------解决方案--------------------------------------------------------
而且程序在 dev-C++下编译错误0,警告0,在MSVC6.0中 编译多了很多的警告
----------------解决方案--------------------------------------------------------
回复:(Knocker)1。源程序后缀名 .c 而不是 .cpp ...
在哪里设置 ??----------------解决方案--------------------------------------------------------
if(count>=START & count<END)
这个语句在 MSVC6.0中 竟然警告要求使用 括号来明确优先级(use parentheses to clarify precedence)
----------------解决方案--------------------------------------------------------
严格不是很好吗……还有,&和>=哪个的优先级高啊?
----------------解决方案--------------------------------------------------------
查了一下书,&是个位操作符,一般是用在处理bit上面的。如果你要用逻辑与(看你的意思好像是这样),应该用&&。编译器提醒你是不是用错了。我觉得这个编译器挺好的~~不过如果你坚持要用&,这个表达式的优先级也是对的…………
----------------解决方案--------------------------------------------------------