编译器错误 "missing ' ;' before ' type'"不确定原因

标签 c

<分区>

我收到错误 error C2143: syntax error : missing ';'在编译期间的 'type' 之前,在我在以下代码中声明 char *buf 的行中,我不明白为什么。我正在运行 Visual Studio 2012。它显然在 gcc 中编译得很好。 VS 中是否有一些我需要更改的设置才能编译,或者我可以进行代码修改?

我现在唯一想做的就是创建一个与我的文件 input.txt 大小相同的字符数组。

#include <stdio.h>
#include <stdlib.h>

int get_file_size(FILE *inputfile);

int main()
{
    FILE *inputfile;
    int filesize;
    char filename[FILENAME_MAX];

    inputfile = fopen("input.txt","r");
    filesize = get_file_size(inputfile);
    char *buf = (char*)malloc(sizeof(char)*filesize);
    fclose(inputfile);

    return 0;
}

int get_file_size(FILE *inputfile)
{
    int size;

    inputfile = fopen("input.txt","r");
    fseek(inputfile,0,SEEK_END);
    size = ftell(inputfile);
    fclose(inputfile);

    return size;
}

最佳答案

VS 不支持 C99,所以你所有的变量声明都必须在当前作用域的顶部。对您来说,这意味着函数的顶部。

关于编译器错误 "missing ' ;' before ' type'"不确定原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19072076/

相关文章:

c - C中的快速排序如何更改枢轴

c# - 调试时在 Visual Studio 中的 C# 应用程序和 C 控制台应用程序之间传递数据

C 回显服务器,回显一个句子后不能正常工作

c - 通过 shell (cat) 或通过程序 (fread) 读取 proc 文件的区别

c - C中的二维数组

c - YACC 文件是否有文件包含机制?

c - 使用 unsigned int 而不是 unsigned short 改变行为

c - 读取二进制和 txt 文件 - 一次 1 个字节

c - 需要为 2D 元组数组和未知大小的 2D 指针数组分配内存?

我可以提高这个选择排序算法的运行时间吗?