导航:首页 > 源码编译 > 编译器cpu通用吗

编译器cpu通用吗

发布时间:2024-11-12 20:27:13

1. 是不是每种处理器都要开发自己的编译器,比如inter的cpu,arm,51单片机

每个处理器厂家都会开发本身的编译器。这是硬体设计与系统工程师的工作。软件编辑员一般都不需染手此东西。是否每个牌子的处理器都须有自己的编译器呢?未必。
比如Intel,AMD,VIA 同是用x86平台都可享用Intel的编译器。
又如Siemens, SGI,NEC 同出产MIPS平台的处理器都可享用MIPS 的编译器。
但有些特别指令如INTEL的MMX,SSE1,2,3,4;AMD的3DNOW,AMD64 等就有劳个产家编写。
如没有特别指令编译器, 软件会出错吗?很多高档程序编辑软体都会翻译及处理,用标准指令来取代特别指令(应该说不用特别指令),当然执行速度会慢过特别指令。

2. 相同的c语言代码,在不同的编译器,不同的操作系统上面生成的指令是不是不同的

不同的CPU生成的指令不一样、不同的编译器C语言实现方式不一样、不同的操作系统API不一样。使用C语言只能做到源代码级别的跨平台和跨编译器。

3. 汇编语言不能移植,不一样通过编译器编译成二进制

代码可移植指的是,举例来说C语言,在不同平台都有它的编译器,同样一段c语言程序通过这些编译器编译形成可执行代码都能在各自平台上运行
汇编语言由于受到各cpu指令的限制,没有通用性,比如Intel上的汇编代码,通过编译器形成可执行代码,在Intel上可以运行,但你拿这些代码放到苹果的cpu上,苹果系统提供的编译器就无法正确编译这些汇编代码形成可在苹果cpu上运行的执行代码,那么我们说,汇编代码不能直接移植。

4. 每个编译器都不一样么 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设置不同。

阅读全文

与编译器cpu通用吗相关的资料

热点内容
加密狗复制啥意思 浏览:545
键盘文件夹重命名输入不了 浏览:413
nu加密币怎么买 浏览:827
服务器1099端口如何关闭 浏览:532
怎么在潍坊银行app改密码 浏览:411
幻塔为什么服务器不一样 浏览:434
抓取网站前端源码 浏览:151
apache24linux安装 浏览:235
java什么是布局管理器 浏览:893
什么配置服务器能架设传奇 浏览:333
手机后台可以加密吗 浏览:142
瑞幸app怎么进不去 浏览:967
粘贴同名文件夹 浏览:150
usb编程入门书籍 浏览:887
大象app怎么删除人员 浏览:104
如何安装华为v2服务器 浏览:920
带耳机录音在哪个文件夹 浏览:367
数控编程g16指令 浏览:315
单片机串口收发不成功 浏览:441
安卓服光遇如何玩ios服 浏览:81