【C语言】C 语言我们称之为可移植性强,并不能跨平台,为什么呢?
C 标准除了文件操作之外,是没有涉及到操作系统硬件资源的接口的,比如进程调度,网络通信等 ,这些接口均为每一个操作系统独有的,windows与 Linux 这些接口有差异,一旦你的 C 程序中使用了这些接口,代码放到另外一个平台就无法编译通过了
·
一、强大的移植性
机器语言和汇编语言都不具有移植性,为 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++进行编写。
更多推荐
已为社区贡献1条内容
所有评论(0)