C 语言代码出错为什么显示「烫烫烫」,而不是其它字?
C语言题库
共 463字,需浏览 1分钟
·
2021-11-04 02:57
这是Windows"烫烫烫"的原因,出自《软件调试》,张银奎
一个0xcc是x86中断指令int 3的机器码,两个0xcc(0xcccc)就是一个烫字。0xcdcd是中断指令int 0xcd的机器码,就是一个屯字。他们在被执行的时候都会导致debugger中断因为通常认为未初始化的内存不应该被执行。
代码:
#include "stdio.h"
int main(void){
char s[3] = {0xcc,0xcc,0};
printf("%s\n",(char*)s);
return 0;
}
输出:
还有另外一个解释
因为你写的代码不正确,很可能导致CPU发烫,编译器想用这样的办法来提醒你。
评论