c跨平台编译
⑴ c语言是如何跨平台的
标准C和标准C++都是源代码级跨平台的,nbsp;也就是说你用标准C/C++写的代码在windows下编译后就可以windows下运行,nbsp;在unix/linux下编译后就可以在unix/linux下运行.跨硬件平台是靠编译器的,比如要输出一个字符,C里用printf(“C“);硬件平台a用中断A输出,nbsp;硬件b用中断B输出,nbsp;那么就得有两个不同的编译器,nbsp;它们都用不同的方法实现C的功能
⑵ C语言是不是跨平台的
回答可以说是也不是。
C的源代码是跨平台的而编译后的目标文件和可执行文件就不是跨平台的。
因为针对不同的平台会用不同的编译器来编译和链接同样的源代码。
当然如果你的代码里有针对某种特定平台的代码的话(比如Windows API调用),那么用针对其它平台的编译器就会出错。
一般来说如果想写真正跨平台的源代码会用#define 来实现有条件的编译。
⑶ 为什么说c语言是跨平台语言,不就是编译器吗
C语言---是标准,定义了一些条条框框,文字上的东西如C89,C99如ISO/IEC
C99
编译器是根据这些条条框框来做的,不能违反(但也不是那么特别死要求的),对于它来说,标准就好像是法律。
说到跨平台,并不是讲每一个WIN下的可编译正确运行的C代码,就能100%放到LINUX或*bsd下运行的,据我的一点经验,写代码人是否按照标准规范写的,用的非标准库函数是否在WIN及UNIX平台下都能正常,都有限制的
⑷ C语言到底有没有跨平台性
C语言本来就是跨平台的,不过是“源码级”跨平台。本来就是存在针对linux、windows的不同的编译器。所以有C语言“一次编写,到处编译”,Java是“一次编译,到处运行”的说法。
如C++创始人酸溜溜的说法,JVM造了一个新的平台,让所有Java程序只能在这个平台上运行,而C和C++的代码可以在几十个不同的平台上运行,从这个角度而言,C和C++是跨平台的,而Java不是
⑸ c语言可跨平台吗
你说的跨平台是指什么?操作系统平台么?
如果是指操作系统平台的话,那要看是什么操作系统了,同一个程序的微软之间的系统平台之间的c语言都是相同的,但是如果是linux和微软操作系统之间的话就不同了
⑹ 跨平台C,C++代码注意的事项及如何编写跨平
跨平台,或者平台无关,是指程序代码在不同环境下具有完全相同的预期功能,可以互相替换。C语言的跨平台一般含义是:在指定的硬件和软件平台下能够正常编译的C语言源代码,在代码满足一定跨平台性的要求后,无需修改即可在另一硬件或软件下编译生成目标文件。这样,源代码是跨平台的。目标代码一般都是对应平台的本地代码,不能跨平台(例如.obj和.elf就不能直接混用;Windows和Linux上的可执行文件一般也不互相兼容)。C语言程序跨平台的实现必需编译环境的支持。对于库,提供源文件,或者提供不同平台下对应编译环境支持的目标文件(例如.lib/.a),可以实现跨平台开发。无法跨平台的部分,是平台相关的接口(例如一些操作系统API),库通过实现一定的兼容层可以克服平台障碍(前提是硬件支持)。注意C语言的标准库在任何支持相同版本标准上的平台上的行为都是一致的(除了标准定义implemention defined或者undefined的部分,这些部分应该尽量避免使用),是跨平台的;同其它跨平台库一样,是实现跨平台开发的有力用具。在Win/Linux下进行跨平台开发,编译器主要用GCC;可以使用经过配置的MinGW、Cygwin环境;跨平台GUI开发可以考虑wxWidgets等库。
至于Java,它事实上就是一个平台(JVM,Java虚拟机),所谓的“一次编译,到处执行”的跨平台支持是通过不同的Java编译器和JVM来实现的。Java程序的源代码和目标代码都可以跨平台。但是不同的JVM可能实现了不同的特定功能,基于特定功能的部分无法保证跨平台。此外,native的本机代码和JVM之外的平台相关,和C一样,也无法保证跨平台。
⑺ C语言是如何编译与组建的,跨平台性
c语言能跨平台是因为各个平台有相应的c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能,但是这些二进制文件本身是不一样的
exe就是2进制的,但不完全是原来程序的代码,还包括了windows系统的一些代码
⑻ c语言是如何跨平台的
c语言能跨平台主要因为各个平台包括DOS,Windows,Linux,UNIX等都有c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能(不包括跨平台的系统调用)。但是这些二进制文件不一样,Linux中的可执行文件一般情况下都不能在Windows中运行,因为他们是两个完全不同的操作系统,有不同的内核,不同的系统调用。但编译器会根据不同的平台生成不同的代码,使二进制文件能在专有的平台中运行,并且实现相同的功能。
跨硬件平台也是类似,在各种平台上,如x86,x86_64,Sparc,ppc,Motorola等都有相应的编译器。编译器会把相同的c语言代码编译成不同的机器指令,这样就可以实现跨平台了。
总而言之,跨平台主要是靠各个平台上的编译器。