一、强大的移植性

机器语言和汇编语言都不具有移植性,为 x86 开发的程序,不可能在Alpha,SPARC 和 ARM 等机器上运行
  而 C 语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的 C 语言编译器和库,然后将 C 源代码编译、连接成目标二进制文件之后即可运行

二、c语言为毛不能跨平台?

跨平台指的像Java编写的任何代码,无序修改即可在任何一个平台上运行,所以称之为跨平台语言。

我们所讲的 C 标准,当然可以通过不同的编译器编译后在任何一台平台上运行,但是 C 标准除了文件操作之外,是没有涉及到操作系统硬件资源的接口的,比如进程调度,网络通信等这些接口均为每一个操作系统独有的,windows与 Linux 这些接口有差异,一旦你的 C 程序中使用了这些接口,代码放到另外一个平台就无法编译通过了

那是不是 C 不如 Java 呢,其实不是,Windows 操作系统本身用 C 和 C++开发(少量汇编),Linux 全部用 C 开发(少量汇编),C 语言的执行效率一直是高级语言中的第一!另外 Java 及其他脚本语言中没有指针,无法访问物理地址,所以系统中的驱动都需要用 C或 C++进行编写。

Logo

更多推荐