㈠ c语言是不是跨平台的
回答可以说是也不是。
C的源代码是跨平台的而编译后的目标文件和可执行文件就不是跨平台的。
因为针对不同的平台会用不同的编译器来编译和链接同样的源代码。
当然如果你的代码里有针对某种特定平台的代码的话(比如Windows API调用),那么用针对其它平台的编译器就会出错。
一般来说如果想写真正跨平台的源代码会用#define 来实现有条件的编译。
㈡ c语言可跨平台吗
可以, 但需要使用标准库函数.
同样的库函数在不同平台返回值可能有点差异,例如strcmp(不确定), 不过差别不大
㈢ c语言为什么能跨平台或者是如何跨平台的
c语言能跨平台是因为各个平台有相应的c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能,但是这些二进制文件本身是不一样的。
exe就是2进制的,但不完全是原来程序的代码,还包括了windows系统的一些代码。
科普一下,C最早是出现在Unix下的,Windows那都是后话了,C出现的时候Windows还没开发出来呢。
C有个比较特别的称呼,叫中级语言,因为它有高级语言的特性又能跟底层硬件很好的交互所以才有这么个说法。DOS时代在C里面嵌上一段汇编直接从并口读个数上来那是很流行的,现在没见谁在VC里面这么干吧。Windows也不让啊。想访问硬件怎么也得通过驱动。
C在多种平台下可以实现代码级的共享,跨平台就需要重新编译了。
但是,我也见过有的软件是可以在多种平台上运行了,可能有什么特别的技术,可以先识别一下操作系统,再运行相应的代码。这个应该是在编译的时候有特殊的技巧。
C编译、连接器网上有现成的代码,一般不是很专业的技术人员没有去研究它。我一直把玩编译原理的视为天人,有能力把编译原理那本书看完的就很不容易了,再要能领会其中精要那就成才了,能把龙书虎书鲸书都搞明白的那就是一流专家了。
㈣ c#真的可以跨平台吗
从理论上说,C#是完全可以跨平台的。因为c#是借助.Net平台运行的,c#代码会被编译生成为MSIL,即微软中间语言,类似于Java的字节码,.Net是根据MSIL来执行的,而不是像C语言那样直接生成本地代码。C语言之所以无法跨平台,是因为进行与系统有关的操作的时候需要调用系统提供的函数,并编译成为本地代码,就是执行时可以直接运行的代码。所以按理来说,只需要提供能够运行在不同操作系统中的.Net平台,就可以实现跨平台运行。可是,微软在.Net跨平台方面做得并不好,导致C#的跨平台性并不好。希望能帮到你。
㈤ c语言为什么能跨平台或是如何跨平台的
c语言能跨平台是因为各个平台有相应的c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能,但是这些二进制文件本身是不一样的
exe就是2进制的,但不完全是原来程序的代码,还包括了windows系统的一些代码
科普一下,C最早是出现在Unix下的,Windows那都是后话了,C出现的时候Windows还没开发出来呢。
C有个比较特别的称呼,叫中级语言,因为它有高级语言的特性又能跟底层硬件很好的交互所以才有这么个说法。DOS时代在C里面嵌上一段汇编直接从并口读个数上来那是很流行的,现在没见谁在VC里面这么干吧。Windows也不让啊。想访问硬件怎么也得通过驱动。
说远了,C在多种平台下可以实现代码级的共享,跨平台就需要重新编译了。
但是,我也见过有的软件是可以在多种平台上运行了,可能有什么特别的技术,可以先识别一下操作系统,再运行相应的代码。这个应该是在编译的时候有特殊的技巧。
C编译、连接器网上有现成的代码,一般不是很专业的技术人员没有去研究它。我一直把玩编译原理的视为天人,有能力把编译原理那本书看完的就很不容易了,再要能领会其中精要那就成才了,能把龙书虎书鲸书都搞明白的那就是一流专家了。
㈥ C语言是如何编译与组建的,跨平台性
c语言能跨平台是因为各个平台有相应的c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能,但是这些二进制文件本身是不一样的
exe就是2进制的,但不完全是原来程序的代码,还包括了windows系统的一些代码
㈦ c语言是如何跨平台的
c语言能跨平台主要因为各个平台包括DOS,Windows,Linux,UNIX等都有c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能(不包括跨平台的系统调用)。但是这些二进制文件不一样,Linux中的可执行文件一般情况下都不能在Windows中运行,因为他们是两个完全不同的操作系统,有不同的内核,不同的系统调用。但编译器会根据不同的平台生成不同的代码,使二进制文件能在专有的平台中运行,并且实现相同的功能。
跨硬件平台也是类似,在各种平台上,如x86,x86_64,Sparc,ppc,Motorola等都有相应的编译器。编译器会把相同的c语言代码编译成不同的机器指令,这样就可以实现跨平台了。
总而言之,跨平台主要是靠各个平台上的编译器。
㈧ 用C语言可以写操作系统吗
C语言当然是可以写操作系统的,但是操作系统的编写一般都不仅仅只是用C语言编写的。
写操作系统需要编程语言提供以下几个特征:
1、跨平台,不能是只在某个平台下编译(VB就不行);
2、必须是编译型语言(PHP就不行),或者有一个非常高效的解释器;
3、必须有方便的操作硬件的功能,容易嵌入汇编(Java就不行);
4、兼容性要好,最好不同编译器编译的符号要基本相同,容易链接(C++不行,如果放弃Class的话C++基本可以);
5、编译器本身最好是由该语言自己完成的(大部分语言的编译器都是用C/C++写的);
6、开发者可以很方便的扩展、改造、或者使用第三方的运行库(大部分语言的库都无法修改);
7、开发者众多(小众语言就不行);
8、该语言开发操作系统的资料要足够完善。
所以总结下来,C语言是首选。
㈨ c语言跨平台吗
是的,这个语言是跨平台的
㈩ C语言是跨平台的么如果是 那么C语言的跨平台特性和java的跨平台特性有什么不同
标准C和标准C++都是源代码级跨平台的, 也就是说你用标准C/C++写的代码在windows下编译后就可以windows下运行, 在unix/linux下编译后就可以在unix/linux下运行.c语言能跨平台主要因为各个平台包括DOS,Windows,Linux,UNIX等都有c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能(不包括跨平台的系统调用)。但是这些二进制文件不一样,Linux中的可执行文件一般情况下都不能在Windows中运行,因为他们是两个完全不同的操作系统,有不同的内核,不同的系统调用。但编译器会根据不同的平台生成不同的代码,使二进制文件能在专有的平台中运行,并且实现相同的功能。
总之,C的源代码是跨平台的而编译后的目标文件和可执行文件就不是跨平台的,跨平台主要是靠各个平台上的编译器。
在使用汇编语言的时代里,每个厂家都有一套自己的汇编语言,那时计算机程序与机器绑定,不是同一个厂家的程序在其他厂家的平台下就不能运行。直到C语言出现以后,我们才能将X86平台下的C语言程序源文件,换到POWER平台编译以后直接运行。因此C的跨平台移植功能是指在硬件架构上的移植性。 JAVA的跨平台能力是指其不需要指定操作系统可以直接运行。
C语言“一次编写,到处编译”,Java是“一次编译,到处运行”。
如C++创始人酸溜溜的说法,JVM造了一个新的平台,让所有Java程序只能在这个平台上运行,而C和C++的代码可以在几十个不同的平台上运行,从这个角度而言,C和C++是跨平台的,而Java不是。