504_linux内核学习___va_rounded_size宏分析
发布日期:2021-06-30 03:28:17 浏览次数:2 分类:技术文章

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

         全部学习汇总:

         在分析linux的代码的时候,main最开始的时候调用了一个sprintf函数。这里面用到了一个宏__va_rounded_size。今天看看这个宏的功能。其实,在C语言的开发中基本上都是直接使用标准库中提供的这个功能。一般,stdarg.h文件中包含了相应的定义。我正在看的linux代码中也直接包含了这个文件,不过可能是一个精简版本的。

         这个宏的定义如下:

         这个是这个文件中的定义。

         我增加了一个注释,其实这个分析还是很简单的。

         这个功能其实是对这个参数的大小按照int类型进行向上取整。

         把这部分单独摘出来,做一个简单的测试:

         编译运行:

         看起来跟分析的一致,这里的显示结果倒是有点意思。主要有意思的点在于指针类型的空间,其实这个并不是4而是8,主要是因为我现在的用的机器是64bit的。

         看起来,这个也是一个比较有用的一个小代码段。可以收集整理一下,放到我自己的工具箱里面。

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

上一篇:505_linux内核学习_关于C语言函数的可变参数
下一篇:503_linux内核学习_main函数分析

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月14日 07时00分58秒