主题:[讨论]纠结的C问题,难道又是编译器造成的?
int a[10]={1,3,4,2,10,5,9,7,6,8};
int b[10];
FILE* fout;
fout=fopen("in.dat", "w");
for(i=0; i<10; i++)
fprintf(fout, "%d ", a[i]);
fclose(fout);
FILE* fin;
fin=fopen("in.dat", "r");
for(i=0; i<10; i++)
fscanf(fin, "%d", &b[i]);
fclose(fin);
for(i=0; i<10; i++)
printf("%d ", b[i]);
printf("\n");
这是一个简单的文件写入读出的代码,问题是在linux上编译没问题,但在VC6上编译出错,在FILE* fin那里出错。
如果把FILE* fin这段代码改在和FILE* fout一起,删除原有的FILE* fin;这句,就是用一句话来定义: FILE* fout, *fin; 改成这样后,再去VC6编译,也没错了。
实在不明白,在VC6中一起定义和分开定义会有什么区别?
int b[10];
FILE* fout;
fout=fopen("in.dat", "w");
for(i=0; i<10; i++)
fprintf(fout, "%d ", a[i]);
fclose(fout);
FILE* fin;
fin=fopen("in.dat", "r");
for(i=0; i<10; i++)
fscanf(fin, "%d", &b[i]);
fclose(fin);
for(i=0; i<10; i++)
printf("%d ", b[i]);
printf("\n");
这是一个简单的文件写入读出的代码,问题是在linux上编译没问题,但在VC6上编译出错,在FILE* fin那里出错。
如果把FILE* fin这段代码改在和FILE* fout一起,删除原有的FILE* fin;这句,就是用一句话来定义: FILE* fout, *fin; 改成这样后,再去VC6编译,也没错了。
实在不明白,在VC6中一起定义和分开定义会有什么区别?