【发布时间】:2017-04-18 02:44:49
【问题描述】:
这行得通
main()
{
int c;
struct books Book1;
c = getchar( );
return 0;
}
这不是
main()
{
int c;
c = getchar( );
struct books Book1;
return 0;
}
函数 main 中的表达式语法(并指向单词 'struct' 后面的空格)
这也不是因为B的定义在c = getchar();下面,错误指向“int”和“b”之间的空格
main()
{
int c;
struct books Book1;
c = getchar( );
int b;
return 0;
}
问题是我必须在调用函数之前定义每个变量,还是其他问题?
这是 C 的工作原理,还是涡轮 C 的东西?
编辑:在意识到我的意思是说“定义”而不是“声明”后发现重复
【问题讨论】:
-
因为 Turbo C 是一个过时的编译器,在你调用代码后声明变量是非法的。
-
Turbo C 不是 C 编译器,因为 C 是在 1989 年首次标准化,比 Turbo C 发布很久。结果里面包含了很多不规范的东西stackoverflow.com/q/3920351/995714stackoverflow.com/q/1961828/995714
-
好的,谢谢,我在查找“函数调用前定义变量”而不是“函数调用后声明变量”后发现了几个重复项,Where you can and cannot declare new variables in C? 和 Can't define variables after a function call,我应该删除问题?
-
您应该使用最新的编译器,除非您不希望从过去三十年的技术改进中获益,例如 valgrind 和 @987654328 @...improved...optimisations...
-
当然,使用这种老技术没有实际目的,对我来说只是一个任务