先看一段代码:
static inline size_t sdslen(const sds s) {
struct sdshdr *sh = (void*)(s-sizeof *sh);
return sh->len;
}
static inline size_t sdsavail(const sds s) {
struct sdshdr *sh = (void*)(s-sizeof *sh);
return sh->free;
}这种形式的函数会在c语言的头文件中看到。
为什么要定义内联函数:内联函数能减少内存开销,参数入栈出栈消耗堆内存空间。
为什么要放在头文件中:因为定义为内联函数,所以要用到的地方可能不止一个文件(否则就没必须要定义为内联了)。为了避免多个文件中定义同一个函数出错(不一样),所以放到头文件中最明智了。
为什么要加static?:因为内联函数有多个地方要用到,如果不定位静态函数,会出现一个函数定义多次的问题。
本文深入探讨了C语言中内联函数的定义及其在代码中使用的优势,解释了将其放置于头文件的原因,以及为什么需要使用static关键字来避免函数定义的重复。同时,文章详细阐述了内联函数在减少内存开销和提高运行效率方面的显著作用。
1613

被折叠的 条评论
为什么被折叠?



