501_linux内核学习_skip_atoi函数分析
发布日期:2021-06-30 03:28:16 浏览次数:3 分类:技术文章

本文共 558 字,大约阅读时间需要 1 分钟。

         全部学习汇总:

         最近在看一个老版本的Linux内核源代码,为了快速了解内核中的一些实现机制,快速过掉了几个汇编文件。现在开始看C文件,感觉舒服了很多。而且,由于代码实现的功能跟我平时的嵌入式开发相差很大,看起来还是很有意思的。

         今天看代码的时候遇到了一个skip_atoi函数,其实基本上猜测的出来这个是字符转整形的意思。有点类似atoi这样的函数,不过前面又来了一个skip,还是去弄清楚这个函数究竟是想做什么。

         这个函数并不是一个库函数,在这个版本的内核代码中存在源代码。简单看了下,很简单但又让我稍微有了点疑惑。主要的疑惑还是来自于经验,经验误我啊!平时接触大端的MCU多了,忘了intel的这个CPU其实默认是小端模式的。一下子弄清楚了这一点,其实就好懂了。我在代码上也增加了一部分我自己的注释,纯中文,但是这是学习,讲啥规范不规范呢!

         其实,这个也蛮简单了。就是从相应的存储开始的位置找到最多的数字,并计算连成块的数字的数值。

         关于这个函数,也可以做一个简单的测试。

         以上是测试代码,编译后运行的效果如下:

         跟我自己的猜测还是一致的,我还测试了字符串中增加\0的情况,效果是一样的。我看到的代码中,这个被用于了vsprintf中输出格式中宽度的判断。感觉第一次距离这种常用的底层函数这么近,的确是很有意思。

转载地址:https://greyzhang.blog.csdn.net/article/details/112495961 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:502_linux内核学习_vsprintf函数的功能分析
下一篇:500_C语言判断一个字符是否是数字

发表评论

最新留言

不错!
[***.144.177.141]2024年04月07日 13时41分19秒