导航:首页 > 源码编译 > 编译器都是一样的吗

编译器都是一样的吗

发布时间:2022-07-17 06:09:04

① 每个编译器都不一样么 c语言一般用什么编译器 每次一种编译器不能编译 另一种却能编译出

编译器就是c语言编译成二进制的东西,
不同的编译器是不同的,
比如16位系统和32位系统的编译器就不同,因为16位的认为int是2字节,32位的则认为是4个字节。
另外
linux上的编译器跟windows下的编译器也不同,linux上的认为内核空间占1G,而windows下则认为占2G,
此外两个系统对环境变量以及其他的设置也不同所以编译器更不能用。
而且不同的CPU的指令集时不同的,所以同样int
a
=1
最后被编译成的二进制代码也是不同的。
C语言的编译器有很多,windows下的编译器也有很多,不同的编译器可能会做一些不同的优化,linux下的gcc也可以添加选项让他编译windows下运行的程序。
main(int
argc,char*argv[


argc
是你的参数个数
argv是你的参数。
比如你最终程序叫
add
那么
你在命令行执行add
1
2
那么argc
=3
第一个参数使你的add,
第二个第三个就是
1
2,
在函数内部你就可以获取这俩参数进行相加然后打印
visual
是个IDE,集成开发环境,已经集成好了windows下使用的编译器连接器
等,
编写代码完成后直接点击编译就行了。
IDE的默认编译器是可以更改的,不同的IDE设置不同。

② 编译器是什么

简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)
高级计算机语言便于人编写,阅读交流,维护。机器语言是计算机能直接解读、运行的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如Pascal、C、C++、Java、汉语编程等或汇编语言,而目标则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。
对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)。最后运行的时候通过通用语言运行库的转换,编程最终可以被CPU直接计算的机器码(NativeCode)。
编译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器语言)的翻译过程。然而,也存在从低级语言到高级语言的编译器,这类编译器中用来从由高级语言生成的低级语言代码重新生成高级语言代码的又被叫做反编译器。也有从一种高级语言生成另一种高级语言的编译器,或者生成一种需要进一步处理的的中间代码的编译器(又叫级联)。
典型的编译器输出是由包含入口点的名字和地址, 以及外部调用(到不在这个目标文件中的函数调用)的机器代码所组成的目标文件。一组目标文件,不必是同一编译器产生,但使用的编译器必需采用同样的输出格式,可以链接在一起并生成可以由用户直接执行的EXE,
所以我们电脑上的文件都是经过编译后的文件。

③ 每个编程语言都有不同的编译器吗

是的,在编程的世界里面,对于每一种边缘都需要使用不同的编译器,因为他们的编码的形式和规则都是不一样的,希望可以帮到你

④ 编译器不一样 程序会一样吗

一样的可能性很大,但是也不能说绝对一样,这还是取决于你的代码:例如

在vc中
void main(){
int i=3;
printf("%d %d",i,i++);
}

Debug模式输出:
3 3
Release模式输出:
4 3

关于i++,++i,--i,i--这样的问题不同的编译器的理解区别很大,还有int类型,16位的编译器理解为short,32位的编译器理解为long.因此,一样的代码,不同的编译器的结果可能不一样.

⑤ C语言用的编译器还有分别呢吗

C语言用的编译器有分别,不同的平台上的编译器无疑是不同的,同一种平台上不同公司出的编译器也不同。

因为编译器本身也是程序,它们的头文件内容不同,它们自带的特殊函数不同,这都影响我们程序的写法,程序中的调用函数名,函数的参数个数,内容。

即使是同一公司,同一编译器,例如MS VC++, 版本不同也不同,6.0版的程序在5.0上可能通不过,专业版的在企业版,学生版上编译通不过,司空见惯啦。

同一编译器,编译方法设定不同,(是否优化,动态静态链接等),编出的可执行程序也是不同的。

当然,对一些初级程序来说,用哪个编译器都没问题。

C语言可以作图形界面。例如unix用X-window 库函数,或调Motif,或GL库.

PC上的C语言,调用GLUT库还可以支持3维作图,不用说2维了。

至于用户图形界面--UGI(User Graphic Interface) ,windwos环境下还是用VC++调MFC 为最佳捷径。

⑥ 我想学自学C语言,但网上有好多种编译器,请问代码格式等都是一样的吗还有用什么入门好!我是靠看视频

不同编译器的代码“基本”相同,既然是基本当然有不同的地方。
既然你是看视频学的,那你就和你看的视频一致啊,不然可能对于你的学习造成很大影响。同样的代码,在不同编译器上,可能结果不同,甚至无法编译(语法错误)

⑦ C和C++是否都是用同一个编译器。例如Visual C++6.0可用作两种语言的编译器,可以吗

VC++是集成后的开发环境,它已经集成了c和c++两个的编译器,用户在使用的时候自然感觉像是一个;
c是gcc编译器,c++是g++编译器;对于不同的语言,编译器是肯定不能通用的,编译器是完全按照语言的特性、语法进行校验、监测等操作的。。。。
比如c++里的类,你用c的编译器肯定识别不了。。当然c++号称是深度匹配c语言的,但是像c语言中的printf等输入输出函数,c++也是不能识别的。。

⑧ c++各种编译器有什么不同,应该不存在哪种编译器最好的说法吧是不是只要学会用一种编译器就可以了

gcc过去是指gnu组织的c语言编译器,
现在gcc包括gcc命令在内都是gnu的各种语言的编译器集。
在类linux环境输入gcc可以指定编译各种语言。c/c++,objc,ada,pascal,d,fortran等等
g++是专指gnu c++的编译器,属于gcc的一个编译器。
而且要指出g++, dev c++, codeblocks, mingw,等等其实都是在用gcc编译器中c/c++的部分。

各适合做什么?
vc++在win下优势最强,在x86指令下性能优化、标准支持是最好的之一,性能仅次于intel cc,但综合性能最强。
borland c++,现在已经被c++ builder 2012取代了。这个版本的优势也是同vc++类似,在win加x86的cpu下。特别之处是丰富的组件和快捷向导方案,自动生成代码很多。做常用的网络、数据库,桌面应用,很多时候都不用敲什么代码,直接鼠标一阵拖拉就出来了,适合做又快又脏的应用。性能优化不如vc++

gcc是开源软件的核心组件,linux/unix,全靠它编译,支持几乎世上所有的32位以上芯片,什么手机、龙芯、pc,power pc, arms,大设备小设备都靠它。最朴素,但性能强大。适用于任何需要计算的场合。经过多个巨头砸巨资优化过的编译器,性能是一流的。移植性一流。标准化程度也是一流。就是开发工具—打字码字的工具IDE,没有像前2个那样商业化,。

⑨ CC和gcc是一样的编译器吗

cc是Unix系统的C Compiler,而gcc则是GNU Compiler Collection,GNU编译器套装。gcc原名为Gun C语言编译器,因为它原本只能处理C语言,但gcc很快地扩展,包含很多编译器(C、C++、Objective-C、Ada、Fortran、Java)。因此,它们是不一样的,一个是古老的C编译器,一个是GNU编译器集合,gcc里面的C编译器比cc强大多了,因此没必要用cc。
下载不到cc的原因在于:cc来自于昂贵的Unix系统,cc是商业软件。
Linux下的cc是gcc符号连接,可以通过$ls –l /usr/bin/cc来简单察看,该变量是make程序的内建变量,默认指向gcc。cc符号链接和变量存在的意义在于源码的移植性,可以方便的用gcc来编译老的用cc编译的Unix软件,甚至连makefile都不用改在,而且也便于Linux程序在Unix下编译。

⑩ 不同的单片机如(stc AT PIC) 他们的编译器是否一样,还是要到生产厂家要的编译器才可以把程序编进单片机里

用VC++6.0肯定不行的,用KEILC可以,基本上所有的单片机都可以用KEILC编译。至于下载到单片机那就不一样了,PIC有厂家提供的MPLAB ICD,STC也有厂家提供的专用下载软件。还有部分芯片可用通用编程器写入芯片的。

阅读全文

与编译器都是一样的吗相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:577
python员工信息登记表 浏览:375
高中美术pdf 浏览:158
java实现排列 浏览:511
javavector的用法 浏览:979
osi实现加密的三层 浏览:230
大众宝来原厂中控如何安装app 浏览:911
linux内核根文件系统 浏览:240
3d的命令面板不见了 浏览:523
武汉理工大学服务器ip地址 浏览:146
亚马逊云服务器登录 浏览:522
安卓手机如何进行文件处理 浏览:70
mysql执行系统命令 浏览:928
php支持curlhttps 浏览:142
新预算法责任 浏览:443
服务器如何处理5万人同时在线 浏览:249
哈夫曼编码数据压缩 浏览:424
锁定服务器是什么意思 浏览:383
场景检测算法 浏览:616
解压手机软件触屏 浏览:348