C语言,为啥还要加(?,感觉是完全正确的

img


用的是VS,代码一编译就报错,但在其它的电脑上尝试完全可以输出,不知道问题在哪

供参考:

#include <stdlib.h>
#include <stdio.h>
int main(void)
{
    FILE* fp;
    char ch,filename[10];
    printf("请输入文件名:");
    scanf("%s",filename);
    getchar();
    fp=fopen(filename,"w+");
    ch = getchar();
    while(ch != '*'){
          fputc(ch,fp);
          ch = getchar();
    }
    fclose(fp);
    return 0;
}

所以为什么写void 这不是老式写法,也起不到什么作用

VS是比较高级的IDE工具,代码规范之类的会要求更严格,更先进(比如旧的C\C++函数有的禁止使用,因为安全性和可靠性)