‘壹’ 每个编译器都不一样么 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设置不同。
‘贰’ C语言的编译器为什么有许多不同的版本并且在不同的编译器版本下C语言的语法规则也不尽相同
新的版本都是基于旧的版本升级过来的,以此来改善编译器的性能、增加对新平台的支持以及提高竞争能力。
不同的编译器支持的标准语法是一致的(不然没资格称C编译器),但是每个编译器自身可以添加额外的语法、库来扩展语言的表达能力,这就是所谓的xx编译器扩展。使用语言扩展通常能获得较高的性能和灵活性,但是损失了跨平台性。
不仅仅是编译器有很多版本,语言本身都有很多版本,目前C语言的版本是C11,下一个版本为C1y。
‘叁’ 请问编程语法规则,是不是根据不同编译器来定的
不,一个语言的语法是早就确定好的,它有一个统一标准——例如 ANSI C。
不同编译器可能有些许不同,比如有的编译器a=b=c结果很可能不一样(所以我们很少这么用
但是大体上,一个语言的编译器得出的结果是一样的,是根据语法规则做出编译器而非编译器确定语法规则。
zhengshu a=0,编译器肯定不认,理由是没有这个type;但是你可以通过typedef自定义任意的类型。
int是一种type,而type varlist;是声明变量的语法(int a; char b;)
你写了int a=0;那么这时编译器做的就是在内存中开出一个能存int数据的空间,然后把0给填进去,再记录下这块内存的地址,并记住这个地址叫做a。至于分析代码什么的,就是编译器的事情了。
——以上。
‘肆’ 为什么C语言在不同系统中会不一样
这个和C语言没有关系的。
不同的OS提供的底层函数不同,提供的api自然不同了。
‘伍’ 不同的c++软件用的编程语言不同吗
编程语言和编译器是两个不同的东西。
不同的编译器同一语言的语法都是一样的。就拿C++来说,他们都遵循C++11/14/17标准。
不同编译器的区别就是他们的字体环境,mingw版本,关键字识别等有区别,语言方面是没有区别的。
本回答来自工中号一匹大懒虫。
如果满意请采纳,不满意请继续提问。
C++简介
在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C++。 C++进一步扩充和完善了C语言,成为一种面向铅并做 对象的程槐衡序设计语言。C++目前流行的集成开发环境最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++2017。C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。
C和C++关系
但是,C是C++的基础,C++语言和C语言蔽圆在很多方面是兼容的。因此,掌握了C语言,再进一步学习C++就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。
‘陆’ 不同的c语言编译系统差别在哪里代码是否 存在兼容性的问题
ANSI
C
一般都可以支持,但也涉及到不同版本的C标准的兼容性问题,比如VC6不支持C99,VS2003,2005,2008,20120等就可以部分支持C99标准;而且很多标准并没有规定实现,不同的编译器实现可能不同,比如C标准只规定了short<=int<=long,但并没有规定字节数,导致不同的编译器数据类型的大小各不相同。
非
ANSI
C标准的话,不同的编译器一般都有不同的实现,需要分别实现。
在移植到不同编译器的时候这些都要注意处理,比较常规的做法是数据类型和函数等自己根据不同编译器封装成一个统一的格式,在程序中使用封装后的数据类型或函数,而不要使用原生类型,这样在移植时只需要在封装的地方根据编译器的不同进行修改就可以了,不需要再修改源代码。
‘柒’ 相同的c语言代码,在不同的编译器,不同的操作系统上面生成的指令是不是不同的
不同的CPU生成的指令不一样、不同的编译器C语言实现方式不一样、不同的操作系统API不一样。使用C语言只能做到源代码级别的跨平台和跨编译器。
‘捌’ c语言在不同系统中有区别吗,在哪,还有人说什么编译器不同,到底是系统原因还是编译器
在不同的系统中C语言没有区别,有区别的是不同的编译器编译后的机器码不同,就是说函数的C语言的底层实现可能不同,但是C语言的函数作用相同。与系统的关系也一样,系统不同实现方法不同,但是作用相同。
使用不同的编译器,不同的系统,程序运行结果是相同的
‘玖’ C语言的编译器是不是都一样
不一样,支持的语言特性不同,编译出的代码效率不同。当然,还有就是编译出的程序在不同的系统上跑的。比较好的c编译器就是gcc和vc了。这两是x86上用的最多的c编译器还有像Intel的ICC也不错,优化很好。
‘拾’ c语言在各个操作系统语法一样吗
linux下的C语言编程轮迅与windows下的皮桐旁C语言编程从语法上看没有区别,
但燃橡是C语言是有标准的,叫做C语言的必须符合国际标准。区别在于Windows通过头文件windows.h提供的Windows API函数,而Linux则提供了它自己的函数。
基本的C库函数,如stdio.h,string.h等也是标准化的,所有C编译器都必须提供这些函数,典型的如printf, strcpy等。
问题是在于,如果你要调用系统功能,比如在Windows下,则必须通过Windows API来实现,因此,这部分代码就不会和Linux下兼容。