|C发明是为了祸害苏联人,所以里面很多设计都非常糟糕?

|C发明是为了祸害苏联人,所以里面很多设计都非常糟糕?

文章图片

【|C发明是为了祸害苏联人,所以里面很多设计都非常糟糕?】|C发明是为了祸害苏联人,所以里面很多设计都非常糟糕?



还有坊间流传 , C发明是为了祸害苏联人 , 所以里面很多设计都非常糟糕 。 比如指针 。 以至于现在 , 对于指针的评价 , 大多数教材都是55开地说 , 承认他的优点 。 实际上 , C语言的设计目的是良好的汇编替代语言 , 所以早期C语言语法设计时要考虑当时的机器性能 , 当时别说返回多个值 , 连struct都不让返回和传递 , 而现在可以返回struct , 相当于是返回多个值 。



早期计算机内存寸土寸金 , 现在还在广泛使用的8051系列ram只有128字节 。 从汇编的角度来看 , 处理器处理某个变量都是用其地址 , 在被调用函数的栈帧中多出局部变量的空间 , 这里有点复杂 。




网友:指针是过去 现代 未来 计算机必不可少的 , 现代编程语言只是把他隐藏起来 不能直接操作罢了 。 c出现的年代 计算机只考虑同时只有一个程序在运行 。 直接指针操作 也没什么问题 。 后来多任务越来越多 。 指针这种不加约束 可访问内存中任何地址 , 的机制就很危险了 。



网友:计算机语言发展到今天 , 是认知的不断迭代带来的 。 指针在早年的语言设计里是非常寻常的 。 但使用不当会有后果 。 现在设计出的语言提供了更高级和简单的封装(比如纯oop的java , 一般不去访问底层内存 , 除非你知道自己在干嘛 , 同时把调用放到unsafe的包去管理)你问我指针好不好 , 要不要 。 我的回答是 , 能不用尽量不用 , 但是要!