如题所述
我估计有可能你的问题在于:
把char t定义在了for循环里面,而不是开始就声明。
vc里面,如果写c文件而不是cpp
函数里面所有的变量都要在开头声明好。
如果仅仅是定义char型,我试过了,没问题。
补充答复:
楼主:我把示例给你看:
void testfun(char *s)
{
//定义变量
int i;
char t;
int n=strlen(s);
//在开始所有语句之前把变量声明好。
for(i=0;i<n/2;i++)
{
t=*(s+i);
*(s+i)=*(s+n-1-i);
*(s+n-1-i)=t;
}
}
只要在子函数里,在前面声明好就OK。
记住是在使用其他任何语句之前先声明好变量。
如果要追究原因,那就是编译器的问题。
vc编译c文件确实存在这个问题,
如果是linux下的cc就不存在这个问题。
如果是vc编译cpp也不存在这个问题。
如果要再深究,vc为什么编译c会存在这个问题,那就要问做vc的人了,或者其他高手请帮忙解答。我也不明白了。
把char t定义在了for循环里面,而不是开始就声明。
vc里面,如果写c文件而不是cpp
函数里面所有的变量都要在开头声明好。
如果仅仅是定义char型,我试过了,没问题。
补充答复:
楼主:我把示例给你看:
void testfun(char *s)
{
//定义变量
int i;
char t;
int n=strlen(s);
//在开始所有语句之前把变量声明好。
for(i=0;i<n/2;i++)
{
t=*(s+i);
*(s+i)=*(s+n-1-i);
*(s+n-1-i)=t;
}
}
只要在子函数里,在前面声明好就OK。
记住是在使用其他任何语句之前先声明好变量。
如果要追究原因,那就是编译器的问题。
vc编译c文件确实存在这个问题,
如果是linux下的cc就不存在这个问题。
如果是vc编译cpp也不存在这个问题。
如果要再深究,vc为什么编译c会存在这个问题,那就要问做vc的人了,或者其他高手请帮忙解答。我也不明白了。
温馨提示:答案为网友推荐,仅供参考