我收到以下错误:
error C2143: syntax error : missing ';' before 'type'
error C2065: 'month' : undeclared identifier
error C2065: 'day' : undeclared identifier
error C2065: 'year' : undeclared identifier
error C2065: 'month' : undeclared identifier
error C2065: 'day' : undeclared identifier
error C2065: 'year' : undeclared identifier
我正在运行Visual Studio。
这是我的代码:
#include <stdio.h>
#include <string.h>
main()
{
char middle;
char first[30], last[30];
printf("WHat us ur midint?");
printf("\n");
scanf(" %c", &middle);
printf("\n");
printf("WHat us ur name?");
printf("\n");
scanf(" %s %s", first, last);
printf("ur name is %s %c %s\n\n", first, middle, last);
printf("\n");
int month, day, year;
scanf(" %d/%d/%d", &month, &day, &year);
printf("Birthdate: %d/%d/%d\n\n", month, day, year);
}
有谁知道为什么会发生这些错误?
答案 0 :(得分:2)
编译C程序时,MSVC不允许声明遵循块中的语句(它使用旧的C90规则 - 在1999标准中将对语句的声明添加到C中)。
将int month, day, year;
的声明移至程序顶部:
char middle;
char first[30], last[30];
int month, day, year;
...
答案 1 :(得分:1)
Visual Studio 2010不支持c99和c99混合声明和语句。
您必须将所有声明(month
,day
,year
)放在main
函数的顶部。