1. C语言同一段代码,同样的文件,编译器为什么运行结果不一样
有如下几种可能:
1 代码运行的平台硬件不同。
不同的CPU,如嵌入式CPU,intel CPU,以及IBM的CPU,在硬件最底层就是不同的,而C语言是一门和底层相关性极大的语言,在不同的硬件上运行出不同结果是很正常的。
2 代码运行的系统不同。
相同CPU在不同操作系统上跑相同代码时,一样会出现不同的结果。这是由于系统底层的实现不同造成的。比如Linux和Windows,在底层处理上就有一定的差异。
3 编译器不同,同时代码中使用了C规范未定义规则的语句。
C语言规范并没有对C语言的所有行为做定义,所以相同语句,不同编译器的运行效果可能有所不同。比如同样的sizeof(int),在16位编译器上结果为2,而32位编译器上就会是4。
4 代码获取到的外部数据不同。
比如运行代码时获取到的其它输入不同,包括程序中获取的环境变量,实时信息,以及各种外部输入等,均有可能出现不同。
比如在做随机数时,如果以当前时间设定随机数种子,由于每次的时间是不同的,同一个程序每次运行的结果都是不同的。
python是解释语言,c++是编程语言。
1、编译器是off-line,解释器是on-line。编译器把整个程序读进来,进行一系列变大变小转化优化的过程,产生可执行文件,然后编译器退出,由可执行文件来读取和输出数据,python main.py这个命令会启动python虚拟机和解释器,将main.py的代码一行一行解释,只不过不同于REPL,它不会把每一行表达式的值打印出来。
2、Python是一种解释执行的语言,Python的缩进要求十分严格,通过缩进来区别代码块,C++是一种需要编译执行的语言,通过大括号来区分代码块。C++的工作方式是,首先将写好的代码保存到扩展名为.cpp的文件中,然后编译.cpp文件。编译器将C++代码转换为原生代码。然后执行这些机器代码。因此,C++非常靠近硬件。
、C++和Python都是从C语言演变出来的面向对象的编程语言,将相关数据和操作数据的方法打包成一个类,不同的类相互隔离,也可以自由组合,类是一组数据以及操这组数据的函数(方法)的集合。类是对象的抽象模板,对象是类的具体实例,给类的数据取不同的值,同一个类就产成了不同的对象。
3. 综合来说,几大主流C++编译器(icc,gcc,clang,vc++等)究竟孰优孰劣
我曾编出各种C++ 11编译器的支持,并有C++ 14编译器支持一批。
对VC编译的速度不断提高,内存占用已经从VC12开始明显提高,而最明显的是可变参数模板。还有内置的代码静态分析,在实际中很有用。32位保护模式下,ss寄存器存的是一个段选择子,选择子是一个数字,通过IDT(局部描述符表)或者GDT(全局描述符表)选择一个段描述符,描述符里面的信息包含该段的取值范围和大小。
vc14的静态分析不在每次载入一个ie(对,以前每分析一个.cpp,就载入一次ie!),速度快了相当多。
4. C语言控制单片机的详细原理是怎样的
C语言源程序----->C编译器----->汇编代码----->汇编器----->机器代码
所谓的单片机C语言的意思是拿C语言来编写单片机程序,没有什么C语言控制单片机这回说法。具体过程是:C语言源程序通过特定的C编译器编译为针对某种单片机的汇编代码,再由汇编器将汇编代码汇编为单片机可执行的机器代码,然后下载到单片机的存储器运行。当前一般的集成开发环境(如Keil C)可以一次搞定生成机器代码。
需要补充一点的是,单片机也是一种计算机,不要以为只有在PC机上才可以用C语言编程,C语言可以用作为任何计算机的编程语言,当然包括单片机,但有一个条件就是,你必需要有针对某种架构的计算机的C编译器。目前来讲,C语言的编译器种类非常多,有用于各种单片机以及微处理器架构的编译器版本,所以可以用C来做为单片机的编程语言。不同的是,你用TC或者VC编译得到的是X86(如Intel,AMD)的目标代码,只能在PC机上运行,而如果用单片机C编译器(比如Keil C)编译的代码是单片机代码,只能在特定的单片机上运行。目前C/C++是最流行的单片机/微处理器编程语言。
5. MDK编译器怎么样
KEIL MDK是基于的Cortex-Arm微控制器的最全面的软件开发解决方案。
它包括IDE,C / C ++编译器,调试器,软件包管理和CMSIS。MDK5版软件包添加新的运行时环境(RTE)来管理设备的支持和软件组件。
超过3000款Arm?的Cortex?-M微控制器的解决方案;
支持32位Arm Cortex-A和Cortex-A/ Cortex-M的基础设备;
Software Packs包括现成可使用的CMSIS和中间件组件;
亿道电子是国内最全面的开发工具提供商, 致力于将全球最先进的软件产品引荐给国内研发型企业使用
6. VC++6.0官方版怎么样
一、VC++6.0就是微软公司出品的一款开发C++的IDE。所谓IDE就是:为了方便程序员开发,集成了代码编辑器、编译器、链接器、调试器等工具的集成开发环境。
二、现在外面企业已经很少有使用VC++6.0的了,毕竟已经是将近17年前的“古董”了,而且自Windows 7以后的Windows系统对VC++6.0的支持已经比较差了,好像在Windows 10上直接就不能用了。
三、题主如果要在Windows下学习C++,建议可以使用Visual Studio 2013或更高版本(因为VS2013及更高版本对C++11的新特性支持比较完善);如果嫌VS系列的IDE太大,也可以使用Codeblocks或者Dev C++(Codeblocks需要自己单独下载安装并配置编译器,Dev C++安装使用会比较方便一些)。