" char不期望"在MINIX中编译时出错

时间:2015-08-10 13:13:16

标签: c cc minix

我需要在屏幕上打印一行然后获取用户输入,但printf("blah")语句导致我的代码无法编译。错误消息显示' char未预期"但是当我对printf()语句进行评论时,代码就会编译。

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

int main(void) 
{ 
    printf("Welcome to the shell!\n"); 
    printf("shell:>");
    char* inp = (char*)malloc(20); // error at this line
}

我在MINIX 3.1.0中使用cc编译器

1 个答案:

答案 0 :(得分:4)

MINIX C编译器不遵循现代标准,这意味着局部变量只能在函数的开头声明。

你需要这样做。

char *inp;

printf("Welcome to the shell!\n"); 
printf("shell:>");

inp = malloc(20);

当我说“现代”时,我指的是C99标准。 MINIX编译器似乎遵循的较旧的C89标准,以及直到最近的Visual Studio C编译器(直到VS2013及更高版本才支持C99的大部分),只允许在块的开头声明。