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发烫,编译器想用这样的办法来提醒你。







最后,如果觉得不错,大家顺手点个赞,转发就是对我最大的鼓励和支持!


--- EOF ---

浏览 264
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报