突遇幽灵BUG

来源:互联网 发布:krc2lrc.exe软件 编辑:程序博客网 时间:2024/04/27 17:22

2015年3月8日 11:20:41

做C语言类型修饰符的练习时,遇到一个编译器或者其它系统库BUG,

#include <stdlib.h>#include <stdio.h>int main(){    char cCharA,cCharB;    unsigned char ucCharA,ucCharB;    cCharA=ucCharA=127;    cCharB=ucCharB=128;    printf("%d,%u,%d,%u",cCharA,ucCharA,cCharB,ucCharB);    system("pause");    return 0;

上图的结果是:
127,127-128,128
中间少了一个“,”号,我以为这是老师所安排的体验内容。于是在代码中又多加了一个“,”变成下图以便于结果对比:

printf("%d,%u,,%d,%u",cCharA,ucCharA,cCharB,ucCharB);

结果是:
127,127,,-128,128

推断原因可能是:解析上面出了问题。
当我做相关对比的时候,发现原来的“,”一切都又正常显示。
再次推断这个BUG可能经过一次printf后,就会修正。

但是当我准备用OD工具逆向分析一下传参过程以期从中得到结果的时候,发现原来缺少一个‘,’的问题,不能复现!
这个……
没办法只能推断可能原因如下:

  1. 我将半角全角符号“,”输入错误
  2. 这个项目在关机的时候没有保存(虽然没有输入任何代码),可能在重启VS2012修复的过程中发生了故障所致
  3. 系统的某些随机因素(汗

1号可能原因迅速被实验否定。我打算重启电脑,试试这个随机因素汗。

0 0
原创粉丝点击