我需要在屏幕上打印一行然后获取用户输入,但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编译器
答案 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的大部分),只允许在块的开头声明。