2 wmh870422215 wmh870422215 于 2016.05.03 19:49 提问

编译器是否可以改变程序员的编程逻辑或意图

举例:用c语言,有一个整型变量a,在代码中明确表示a不会加一或减一,但是在调试时a却违背了程序员的意图出现了加一或减一的情况。

4个回答

codehat
codehat   2016.05.03 22:54
已采纳

不会,但如果是希望单步调试来跟踪变量的变化,最好将代码编译的优化选项关闭掉,否则优化后的代码与C的变量是不能一一对应起来的。

codehat
codehat 回复wmh870422215: 如果你是用的其他编译器,你可以尝试找一找 -o 的选项
一年多之前 回复
codehat
codehat 回复wmh870422215: 如果你是用的VC,可以用DEBUG模式进行编译然后调试
一年多之前 回复
codehat
codehat 回复wmh870422215: 编译器在编译中为了节省空间通常会默认进行优化,优化后的汇编与C无法进行逐行匹配。
一年多之前 回复
wmh870422215
wmh870422215 这个变量优化到底是什么,最近被它搞得头大
一年多之前 回复
wmh870422215
wmh870422215 怎么关闭掉变量优化
一年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.05.03 23:50

编译器是程序,是程序就可以做任何事情。就在最近,就有人通过修改xcode附带的oc编译器,把恶意代码附加到使用这个编译器的所有程序上。
相关报道:http://digi.163.com/15/0918/19/B3QMTEMR00162OUT.html

wangjingchuanq
wangjingchuanq   2016.05.04 18:01

不知道用的什么编辑器

oyljerry
oyljerry   Ds   Rxr 2016.05.03 21:47

编译器不会出现这个错误 应该有其它地方修改或者越界等修改了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!