我又重新把之前的写的博客看了一遍,写的是什么狗屁,我自己看得都费劲,这里我重开一博客把之前在剖析(四)里的内容摘取出来。
在分析print_object()函数时,对于出现的print_String_ptr()函数,我们做进一步的分析。下面就是print_String_ptr()函数,我已经贴好了注释,针对给定的text文件,就返回"\"name\""了。
当然,上述针对的给定的text字符串,刚好满足if(iflag)条件,所以就直接输出了,接下来我们分析一下未满足条件的,也就是flag为1的时候。这就是,在上图的黄色框中的部分的条件成立的,即可以字符串的第一个字符是双引号或反斜杠或者ASCII码小于32的,我们先看看小于32的ASCII码包括哪些内容,如下图:
有点长,我就不全贴出来了(给个地址:http://ascii.911cha.com/?year=13),可以看到,都是一些控制字符串,非显示字符串,控制字符是用来实现特定操作的,如一些比较常用的控制字符就是ESC、BACKSPACE(删除上一个字符)、Del(删除当前字符)、回车符、换行符等。
好了,我们回到代码部分,首先判断是不是空串,如果是就直接输出俩双引号。
差不多就分析这么多吧。加油加油!
来源:51CTO
作者:你看那人好像条狗耶
链接:https://blog.csdn.net/qq_40963043/article/details/101062708