我真正简单的C程序无法编译.任何的想法?

Adi*_*dib 1 c visual-studio-2010

这是我无辜的计划

int main(int argc, char* argv[])
{
    if(argc < 3)
    {
        printf("Sorry");
        return 0;
    }

    char key[]= "45WPbZNljDN6CUCUU6ga";
    FILE* inpFile = fopen(argv[1],"r");
    FILE* outFile = fopen(argv[2],"w");
    if(!inpFile || !outFile)
    {
        printf("oops");
        return 0;
    }

    enc(inpFile,outFile,key);
    fclose(inpFile);
    fclose(outFile);
}
Run Code Online (Sandbox Code Playgroud)

enc()在别处定义,但它不是问题.当我尝试使用VS2010命令提示符编译时,一切都变得狂暴.但是,当我删除参数检查块时,它编译得很好.

int main(int argc, char* argv[])
{
    char key[]= "45WPbZNljDN6CUCUU6ga";
    FILE* inpFile = fopen(argv[1],"r");
    FILE* outFile = fopen(argv[2],"w");
    if(!inpFile || !outFile)
    {
        printf("oops");
        return 0;
    }

    enc(inpFile,outFile,key);
    fclose(inpFile);
    fclose(outFile);
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Mar*_*ins 7

如果它被编译为C程序(带VS2010的.c扩展名),则在可执行语句之后声明变量是无效的.您需要将声明(key,inpFileoutFile)全部移到前面main(在第一个if语句之前).