同一段代码编译的长度不同
⑴ c语言同一段代码,同样的文件,编译器为什么运行结果不一样
一般来说,C语言程序被编译为可执行程序后,每次都输出都是相同的,但有些特殊情况例外,比如,代码中引入了随机变量,并让它出现在输出结果中。
⑵ 绋嫔簭浠g爜闀跨煭鍒嗗埆链変綍浼樼己镣
浣犺寸殑闀跨煭鏄鎸囦竴琛屼腑镄勪唬镰侀暱鐭杩樻槸鍑芥暟涓镄勮屾暟闀跨煭銆
涓岖℃庝箞瀵圭紪璇戝櫒鍙婅繍琛屾満鍣ㄦ潵璇寸幇鍦ㄥ凡缁忔病链夋垨鍑犱箮娌℃湁鍖哄埆浜嗐傚尯鍒涓昏佹槸瀵逛汉璇寸殑銆傝屼笖闀跨煭涔熸槸鐩稿圭殑锛屾病链夊浐瀹氩硷纴澶氩皯绠楅暱澶氶暱绠楃煭銆傛垜涓鑸涓涓鍑芥暟镄勯暱搴︿笉瓒呰繃涓灞忥纴灏辨槸鑳戒竴娆$湅瀹屾暣涓鍑芥暟鍐呭广傝繖镙锋潵璇寸煭鍑戒腑镄勫唴瀹瑰彲浠ヤ竴鐩浜嗙劧锛岀亩鍗曟带鍒讹纴骞朵笖瀹规槗鍙浠ラ吨鐢ㄣ傝岄暱鍑芥暟寰堢亩鍗曞嚭鐜板氶吨宓屽楋纴瑕佺湅瀹岃佺炕灞忥纴涓ラ吨褰卞搷鐞呜В钥屼笖鐩稿綋瀹规槗鍑洪敊銆
濡傛灉浣犳湁杩囩淮鎶ゅ悓浜嬬殑鍑犵栌琛岄暱鍑芥暟浠g爜缁忓巻镄勮瘽锛屼綘灏变细娣辨繁镄勪简瑙d紭缂虹偣浜嗐
⑶ C语言同一段代码,同样的文件,编译器为什么运行结果不一样
有如下几种可能:
1 代码运行的平台硬件不同。
不同的CPU,如嵌入式CPU,intel CPU,以及IBM的CPU,在硬件最底层就是不同的,而C语言是一门和底层相关性极大的语言,在不同的硬件上运行出不同结果是很正常的。
2 代码运行的系统不同。
相同CPU在不同操作系统上跑相同代码时,一样会出现不同的结果。这是由于系统底层的实现不同造成的。比如Linux和Windows,在底层处理上就有一定的差异。
3 编译器不同,同时代码中使用了C规范未定义规则的语句。
C语言规范并没有对C语言的所有行为做定义,所以相同语句,不同编译器的运行效果可能有所不同。比如同样的sizeof(int),在16位编译器上结果为2,而32位编译器上就会是4。
4 代码获取到的外部数据不同。
比如运行代码时获取到的其它输入不同,包括程序中获取的环境变量,实时信息,以及各种外部输入等,均有可能出现不同。
比如在做随机数时,如果以当前时间设定随机数种子,由于每次的时间是不同的,同一个程序每次运行的结果都是不同的。
⑷ 用c语言写程序,同样的代码,为什么编译时间每次都不一样
这个编译器内部有预编译的东西,所以时间不一样,而且计算机的内存,后台进程不一样,时间也就不一样了
⑸ 同样一段代码,为什么编译器不同会不同结果
这很正常,每种语言的标准只是给出了该语言实现的最小集合,而厂家或者开源社区做编译器的时候,只要遵循这些标准就可以,在此基础上增加的非标准功能,就有可能不一致了。