不同编译器代码
1. 不同的c语言编译系统差别在哪里代码是否 存在兼容性的问题
ANSI
C
一般都可以支持,但也涉及到不同版本的C标准的兼容性问题,比如VC6不支持C99,VS2003,2005,2008,20120等就可以部分支持C99标准;而且很多标准并没有规定实现,不同的
编译器
实现可能不同,比如C标准只规定了short<=int<=long,但并没有规定
字节
数,导致不同的编译器
数据类型
的大小各不相同。
非
ANSI
C标准的话,不同的编译器一般都有不同的实现,需要分别实现。
在移植到不同编译器的时候这些都要注意处理,比较常规的做法是数据类型和
函数
等自己根据不同编译器封装成一个统一的格式,在
程序
中使用封装后的数据类型或函数,而不要使用原生类型,这样在移植时只需要在封装的地方根据编译器的不同进行修改就可以了,不需要再修改
源代码
。
2. 有哪些好用的代码编辑器值得推荐
作为一个程序开发者,日常的开发工作绝对离不开代码编辑器,不管是前端还是后台,下面几款常用的代码编辑器,可以试试:
1.Notepad++:相信大部分开发人员都听说或使用过这个代码编辑器,记事本的增强版,免费开源、小巧灵活、使用方便,支持常见的自动补全、语法提示、代码高亮,可编辑语言多达27种。
2.EditPlus:这也是一款小巧灵活的代码编辑器,功能类似于Notepad++,拥有强大的文本处理功能,界面简洁美观,启动速度较快,支持常见的语法高亮、代码折叠等功能。
3.PNEdit:这是由上海一家科技公司开发研制的一款免费、跨平台的文本编辑器,支持几乎所有主流语言开发,常见的语法高亮、智能补全、语法检查、括号匹配,这个软件都支持,除此之外,还支持git功能,插件扩展丰富,下载配置相关插件后,可直接调试、运行,在业界是一个非常受欢迎的代码编辑器,张江男工作所选。
相信,对于大部分日常开发工作来说,完全够用了,当然,你也可以使用对应的IDE来完成相关工作
3. 为什么我用vc++6.0和vs2010编译同一段代码、运行速度天差地别
这个可能是因为6.0和2010所使用的函数库可能不同,链接的系统库不同
你可以采用下面的方法再试一下:
1、创建项目的时候选择一个空白的控制台项目,就是创建完以后一个文件都没有的那种。
然后添加一个c++源文件,将代码写进去
2、编译的时候记得用release模式
3、记得运行的时候关闭电脑的其他程序,尽量让cpu的使用率保持一致
这样再试一下看看
额外说明一下,2010的功能比6.0强大很多,所以同样一段代码的编译,它会比6.0添加更多的辅助性的东西进去。但正常的话,release版本在运行速度上应该是没有变化的!
如果按照上面的还有这样大的区别,请和我联系
我也很感兴趣!
4. C语言代码在不同编译器下运行结果不同,请问原因
可以把fflush(stdin); 删掉,有时候把这个删掉就行了。scanf("%c", &ch);换成ch=getchar();应该就行了。
至于两个编译器不一样的情况,这是肯定会有的,毕竟是两个不同的编译器。
5. 用C语言写了一个程序,如图。请问为什么用不同编译器执行同样代码,结果不同
把 这一句: int b = b + 1;
改为 b = b + 1;
结果就一样了
因为你在while中重新定义了变量b,但是没有给b赋值,b的值是随机的,有可能出现任何值
6. 每个编译器都不一样么 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设置不同。
7. 为什么汇编代码在不同编译器上结果不一样
也许是masm版本不同引起的,高版本功能更强、会进行某些优化。
另,有些功能,在汇编中也会有不同的实现方式;再,高版本对伪指令的用法也许进行优化调整。