K&R 中变量的声明和赋值位于不同的行有原因吗?

问题描述 投票:0回答:3

我开始阅读《C 编程语言》,我注意到变量的声明和变量的赋值位于不同的行。例如,从第 16 页开始: int c; c = getchar();

不写
int c = getchar();

有什么原因吗(一般来说,为什么赋值和声明不在同一行)?当我运行它而不是前者时,它似乎工作得很好。

    

c variable-declaration
3个回答
5
投票

实际上,自动变量的初始化只是赋值语句的简写。喜欢哪种形式很大程度上取决于品味。我们通常使用显式赋值,因为声明中的初始化器更难看到并且离使用点更远。


3
投票
{

之后)。这是因为编译器技术还无法胜任任意定位变量声明的任务。

我很确定最初你不能用函数调用来初始化一个变量,但到写 K&R 的时候,它已经消失了。但旧习惯在需要后很长一段时间内仍然存在,所以事情就是这样。

在 C '99 及更高版本中,变量声明可以位于语句可以到达的任何位置,也可以位于

for

循环的初始化步骤中。

    


1
投票

© www.soinside.com 2019 - 2024. All rights reserved.