锟斤拷烫烫烫是搞笑梗,出自程序猿,吐槽写程序的痛苦。
首先锟斤拷也是,棍斤拷。源于GBK字符集和Unicode字符集之间的转换问题。Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACTER。
那么U+FFFD的UTF-8编码出来,恰好是 '\xef\xbf\xbd'。假设这个'\xef\xbf\xbd',反复多次,比如 '\xef\xbf\xbd\xef\xbf\xbd',然后放到GBK/CP936/GB2312/GB18030的环境中显示的话,一个汉字2个字节,终于的结果就是:锟斤拷——锟(0xEFBF),斤(0xBDEF),拷(0xBFBD)。
其次烫烫烫乱码:在windows平台下,ms的编译器(也就是vc带的那个)在 Debug 模式下,会把未初始化的栈内存所有填成 0xcc,用字符串来看就是"烫烫烫烫烫烫烫",未初始化的堆内存所有填成0xcd,字符串看就是“屯屯屯屯屯屯屯屯”。也就是说出现了烫烫烫,赶紧检查初始化。
计算机编程执行原理:
计算机对除机器语言以外的源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的。
这种将高级程序设计枯喊则语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。
解释方式下,计算机对高级语言书写的源程序一边解释一边执行,不能形成目标文件和执行文件。
编译方式下,首先通过一个对应于所用程序设计语言的编译程序对源程序进行处理,经过对源程没棚序的词法分析、语法分析、语意分析、代码生成和代码优化等阶段将所处理的源程序转换为用二进制代码表示的目标程序。
然后通过连接程序处理将程序中所用的函数调用、系统功能渗庆调用等嵌入到目标程序中,构成一个可以连续执行的二进制执行文件。调用这个执行文件就可以实现程序员在对应源程序文件中所指定的相应功能。
标签:是锟斤,烫烫