在调用函数后定义变量给我一个编译错误
Defining variables after calling functions gives me a compilation error
这个有效
main()
{
int c;
struct books Book1;
c = getchar( );
return 0;
}
这不是
main()
{
int c;
c = getchar( );
struct books Book1;
return 0;
}
Expression syntax in function main (and points to the space after the word 'struct')
这也不是因为 B 的定义在 c = getchar();
下面,错误指向 "int" 和 "b"
之间的 space
main()
{
int c;
struct books Book1;
c = getchar( );
int b;
return 0;
}
问题是我必须在调用函数之前定义每个变量,还是其他原因?
这是 C 的工作方式,还是 turbo C 的东西?
编辑: 在意识到我的意思是 "definition" 而不是 "declaration"
后发现了重复项
Where you can and cannot declare new variables in C?
Can't define variables after a function call
在C89中,变量必须在块的开头声明。自 C99 以来,该限制已被删除。
Turbo C 这种过时的编译器不支持此 C99 功能也就不足为奇了。
这个有效
main()
{
int c;
struct books Book1;
c = getchar( );
return 0;
}
这不是
main()
{
int c;
c = getchar( );
struct books Book1;
return 0;
}
Expression syntax in function main (and points to the space after the word 'struct')
这也不是因为 B 的定义在 c = getchar();
下面,错误指向 "int" 和 "b"
main()
{
int c;
struct books Book1;
c = getchar( );
int b;
return 0;
}
问题是我必须在调用函数之前定义每个变量,还是其他原因?
这是 C 的工作方式,还是 turbo C 的东西?
编辑: 在意识到我的意思是 "definition" 而不是 "declaration"
后发现了重复项Where you can and cannot declare new variables in C?
Can't define variables after a function call
在C89中,变量必须在块的开头声明。自 C99 以来,该限制已被删除。
Turbo C 这种过时的编译器不支持此 C99 功能也就不足为奇了。