"char not expected" 在 MINIX 中编译时出错
"char not expected" error when compiling in MINIX
我需要在屏幕上打印一行,然后获取用户输入,但是 printf("blah")
语句导致我的代码无法编译。错误消息显示“char not expected”但是当我注释掉 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 编译器
MINIX C 编译器不遵循现代标准,这意味着局部变量只能在函数的开头声明。
你需要做例如
char *inp;
printf("Welcome to the shell!\n");
printf("shell:>");
inp = malloc(20);
当我说 "modern" 时,我指的是 C99 标准。 MINIX 编译器似乎遵循的旧 C89 标准,以及直到最近的 Visual Studio C 编译器(直到 VS2013 及更高版本才支持大部分 C99),只允许在块的开头声明。
我需要在屏幕上打印一行,然后获取用户输入,但是 printf("blah")
语句导致我的代码无法编译。错误消息显示“char not expected”但是当我注释掉 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 编译器
MINIX C 编译器不遵循现代标准,这意味着局部变量只能在函数的开头声明。
你需要做例如
char *inp;
printf("Welcome to the shell!\n");
printf("shell:>");
inp = malloc(20);
当我说 "modern" 时,我指的是 C99 标准。 MINIX 编译器似乎遵循的旧 C89 标准,以及直到最近的 Visual Studio C 编译器(直到 VS2013 及更高版本才支持大部分 C99),只允许在块的开头声明。