1. c语言的编译器有哪些
C语言的编译器有:GCC(GNU编译器集合)、Clang、Microsoft Visual C++(MSVC)、Turbo C等。
GCC(GNU编译器集合)
GCC是一个开源的编译器,它支持多种编程语言,包括C语言。由于其免费、开源的特性以及良好的兼容性,GCC在Linux系统上非常流行。它不仅提供了编译器的基本功能,还包括了大量的工具链和库。由于它是跨平台的,因此在Linux、Windows和macOS等操作系统上都可以使用。
Clang
Clang是一个基于LLVM的C语言编译器。它提供了非常高的编译速度,并且具有强大的错误检测和诊断能力。Clang的语法分析器能够识别许多编程错误,使得开发者在编写代码时可以更加高效。它也支持多种操作系统,并且在一些现代的软件开发环境中得到了广泛的应用。
Microsoft Visual C++(MSVC)
Microsoft Visual C++是微软开发的一种集成开发环境中的C语言编译器。它提供了大量的库函数,并支持最新的C语言标准。由于它内置于Visual Studio开发环境中,因此在Windows平台上进行C语言开发时非常受欢迎。同时,它还能提供高效的代码优化和调试功能。
Turbo C
Turbo C是一种较为早期的C语言编译器,主要在DOS操作系统中使用。尽管它已经比较久远,但由于其小巧、快速的特点,在一些特定的应用场景中仍然被使用。现在,一些基于Turbo C的集成开发环境(IDE)也在市场上出现,为开发者提供了更便利的开发工具。
这些都是主流的C语言编译器,每种编译器都有其独特的特性和适用场景。开发者可以根据自身的需求选择合适的编译器进行开发。
2. c语言为什么能跨平台或是如何跨平台的
c语言能跨平台是因为各个平台有相应的c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能,但是这些二进制文件本身是不一样的
exe就是2进制的,但不完全是原来程序的代码,还包括了windows系统的一些代码
科普一下,C最早是出现在Unix下的,Windows那都是后话了,C出现的时候Windows还没开发出来呢。
C有个比较特别的称呼,叫中级语言,因为它有高级语言的特性又能跟底层硬件很好的交互所以才有这么个说法。DOS时代在C里面嵌上一段汇编直接从并口读个数上来那是很流行的,现在没见谁在VC里面这么干吧。Windows也不让啊。想访问硬件怎么也得通过驱动。
说远了,C在多种平台下可以实现代码级的共享,跨平台就需要重新编译了。
但是,我也见过有的软件是可以在多种平台上运行了,可能有什么特别的技术,可以先识别一下操作系统,再运行相应的代码。这个应该是在编译的时候有特殊的技巧。
C编译、连接器网上有现成的代码,一般不是很专业的技术人员没有去研究它。我一直把玩编译原理的视为天人,有能力把编译原理那本书看完的就很不容易了,再要能领会其中精要那就成才了,能把龙书虎书鲸书都搞明白的那就是一流专家了。