不同机器编译出的结果不同
❶ 为什么相同的代码相同的编译器在不同电脑上的运行结果不同
楼主忽略了 调用函数f1 时,c 没有赋初值就直接判断
在楼主程序的基础上略作修改
截图
win linux 两个平台 都测试过
❷ 同一代码在不同编译器上显示不同
出来结果不是看运行的机器是多少位,而是看这个程序是多少位的,即使你的机器是64位出来的结果还是这样
你用tc这个16位编译器,出来的是16位程序,那么里面的东西都是按照16位来的
你用vc按32位进行编译,出来的是32位程序,那么里面的东西都是按照32位来的
相信你是自己明白为何16和32位出来不同结果,我也不解释了
计算机多少位的你可以下载个CPU-Z进行查看,还能看出操作系统多少位
计算机多少位 操作系统多少位 程序多少位 都是不同的概念
我的机器64位 操作系统32位 可以运行多数的32位 和 16位 windows或dos程序,但是一般的64位程序运行不了,因为操作系统只有32位。
❸ 用c语言写了一个程序,如图。请问为什么用不同编译器执行同样代码,结果不同
把 这一句: int b = b + 1;
改为 b = b + 1;
结果就一样了
因为你在while中重新定义了变量b,但是没有给b赋值,b的值是随机的,有可能出现任何值
❹ 不同编译器会不会产生不同的结果
会有不同的结果。因为编译器不同自带的库函数也不一样。
❺ 不同的机子,怎么执行程序结果不一样啊
因为不同的机子参数不一样,有可能你的程序代码含有默认本机内置参数
❻ 为什么汇编代码在不同编译器上结果不一样
也许是masm版本不同引起的,高版本功能更强、会进行某些优化。
另,有些功能,在汇编中也会有不同的实现方式;再,高版本对伪指令的用法也许进行优化调整。
❼ 说是c语言可移植性好 怎么书上说不同的机器完成的结果不同 结果是跟操作系统有关还是跟cpu有关
都有关系。
一些有争议的写法,比如很多的+在一起,机器编译的结果可能是不一样的,可能是编译器不同,也可能是硬件结构不同造成的。
CPU的指令,结构不同啊,编译到底层的指令和执行顺序肯定是有差别的。
有些地方int默认是16位的,有时是32位的,还有64位的,硬件和操作系统得在不断变化,之前那里料得到。
❽ 同样一段代码,为什么编译器不同会不同结果
这很正常,每种语言的标准只是给出了该语言实现的最小集合,而厂家或者开源社区做编译器的时候,只要遵循这些标准就可以,在此基础上增加的非标准功能,就有可能不一致了。
❾ c语言,不同的编译器会得出不同的结果
应该是2 12 30
这里是典型的宏定义的负效应
S(i++)代换完就是(i++)*(i++)
不管按照什么次序,比如
i=1, 先算i++返回1,而i的值变成了2,后面一个i++,返回2,则i的值变成了3
以下类推
❿ 一个C++小程序,在不同编译器里运行结果不一样,怎么回事
r和c都没有初始化,你就while(++r)了,当然结果不一样。
在这种情况下,一般r,和c是随机值,但一般是编译器给的一个负数。
int r=0;
int c=0;