c语言函数定义的局部变量初始化,为什么旧的C语言规范需要在前面声明函数局部变量?...

在C编程语言中,我已经使用的所有语言修订都将在任何非声明/赋值表达式之前执行前置变量声明。 C似乎已经放弃了所有版本的这个要求。我也认识到更现代的C版本也放弃了这个要求,但我还没有使用任何这些标准。

我的问题是这样的:什么历史原因是为了防止C语言自由地按需声明,而不是前面?

显然,从工程学的角度来看,有许多原因,但是对我来说,这些原因似乎都不合理。

>防止出现模糊的编译器行为错误(例如无限解析循环,用于评估的大量内存膨胀,或者使用宏的一些奇怪的角落情况)。

>防止不需要的编译器输出。这可能是任何从符号输出混乱的调试过程和易于开发调试工具,意外的堆栈存储订单。

>可读性。我发现这很难吞咽,看作为C,虽然设计的可读性相比,其他语言的时代,没有强制这种类型的结构几乎任何地方。 (除非你看到原型是一个类似的执行,但如果我记得原型在’89规格中添加)

>实现复杂性和实际原因。这是我最倾向于相信的。作为工程师,我们必须作出某些考虑,以便在分配的时间框架内运送可行的产品。虽然我会批准计算机科学和软件工程的专业景观都发生了巨大变化,但业务仍然是业务。在一天的结束,我确信贝尔想要一个成品,可以在Unix编程环境中使用,以展示他们已经取得了什么。

有没有人有任何好的来源备份上述任何?我完全错过了什么?我们可以从黎明直到黄昏,但我正在寻找好的硬引用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值