假设我用
Java或
Python或C编程来解决一个简单的问题,可能是构建TCP / UDP回送服务器或计算阶乘.我是否要关心架构细节,即它是32位还是64位?
恕我直言,除非我正在编写与相当低级别的东西相关的东西,否则我不必为32或64位而烦恼.我哪里错了?还是我正确的???
解决方法
大多数情况都是正确的
除非您直接处理字大小或低级别的二进制文件,否则运行时/语言/编译器将抽象这些细节.
甚至字节顺序也被内核中的NIC /网络堆栈抽象化.它是为您翻译的.在C语言中编写套接字时,有时您必须在发送数据时处理网络的字节排序……但这不涉及32或64位差异.
处理二进制数据blob时,将它们从一个体系结构映射到另一个体系结构(例如,作为C结构的覆盖)可能会引起其他人提到的问题,但这就是我们基于字符等开发独立于体系结构的协议的原因.
像Java这样的事实在虚拟机中运行,它将机器抽象化了一步!
了解架构的指令集,以及如何编译语法可以帮助您理解平台并编写更清晰,更严格的代码.我知道在学习编译器之后我会对一些旧的C代码做鬼脸!