C语言 结构体定义

staticinlinevoid*to_ram_addr(void*addr){u32base;base=KSEG0ADDR(RALINK_SOC_SDRAM_BASE)... static inline void *to_ram_addr(void *addr)
{
u32 base;

base = KSEG0ADDR(RALINK_SOC_SDRAM_BASE);

我看到linux内核代码中有如上定义的结构体,请问这个static inline中的inline是什么意思?
u32 base;又怎么解释?

KSEG0ADDR是一个函数名吗?
展开
 我来答
百度网友b19869687
2013-10-24 · TA获得超过370个赞
知道小有建树答主
回答量:191
采纳率:100%
帮助的人:80.1万
展开全部
这题目与结构体根本无关嘛!
inline关键字表示函数是内联函数,也就是把调用函数的语句替换成函数体;

u32 base; u32是数据类型,相当于unsigned int。这句话就是定义一个u32类型的变量base;
KSEG0ADDR:应该是一个宏定义,一般来说宏定义才会全部用大写。
帕剌斯
2024-10-29 广告
德国Palas 成立于1983年,总部位于德国巴登符腾堡州的卡尔斯鲁厄。作为气溶胶技术专家, Palas 致力于为用户提供气溶胶颗粒物的产生、处理、测量与分析解决方案,是该领域内全球先进的开发商和制造商。基于自身技术的独特优势,Palas ... 点击进入详情页
本回答由帕剌斯提供
ljf10000
2013-10-25 · TA获得超过199个赞
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:110万
展开全部
C语言基础还没搞定就看linux内核,有魄力。

static和inline都是修饰函数的,声明为static inline的函数编译时直接展开为代码(就没有函数调用了),类似宏展开;与宏展开比较,宏是预处理程序进行处理的,没有类型检查,而内联函数(static linline修饰)会有编译器的检查,更安全。

KSEG0ADDR应该是寄存器相关的宏
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qa6300525
2013-10-23 · 超过16用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:29万
展开全部
inline关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。

u32 是一个数据类型 相当于unsigned int。

KSEG0ADDR()肯定是一个函数,具体是什么,这个不太清楚了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式