inline函数为什么最好要添加static
来源:互联网 发布:淘宝买家退款率从哪看 编辑:程序博客网 时间:2024/06/11 06:09
测试:
测试文件:show.h, main.c, printf.c
测试文件说明:
测试文件说明:
1)show.h:定义了void foo(void) inline函数
2)main.c:不包含show.h头文件,但声明了void show()原型
3)show.c:包含show.h头文件;并且有对foo函数的调用;
测试文件内容:
//show.h
#include<stdio.h>
static inline void show()
{
printf("%s\n", __func__);
}
//main.c
#include<stdio.h>
void show();
int main()
{
show();
return 0;
}
//printf.c
#include "show.h"
void print_fun()
{
show();
}
测试文件内容:
//show.h
#include<stdio.h>
static inline void show()
{
printf("%s\n", __func__);
}
//main.c
#include<stdio.h>
void show();
int main()
{
show();
return 0;
}
//printf.c
#include "show.h"
void print_fun()
{
show();
}
测试结果:
1)如果show.h中对show() 函数的定义,没有使用static,则链接编译成功
2)如果show.h中对show()函数的定义,使用了static ,则连接时出错
错误提示:
main.c:(.text+0xa): undefined reference to `show'
collect2: error: ld returned 1 exit status
错误提示:
main.c:(.text+0xa): undefined reference to `show'
collect2: error: ld returned 1 exit status
结论:
如果inline函数没有使用static关键字,则函数可以通过extern而不用包含声明inline函数的头文件就可以实现对inline函数的调用,显然很容易引起隐藏性错误,但链接器却不会给出错误哪怕是警告;所以inline函数最好声明为static类型,这样即使有错也会给出错误提示,代码可维护性也比较好。
0 0
- inline函数为什么最好要添加static
- static inline内联函数
- static inline内联函数
- static inline内联函数
- static inline内联函数
- static inline内联函数
- static inline内联函数
- Main函数为什么要static
- static inline Linux内联函数
- static inline func 内联函数
- static inline内联函数剖析
- C#中Main函数为什么要static
- 内联函数:static inline 和 extern inline 的含义
- 内联函数:static inline 和 extern inline 的区别
- 内联函数:static inline 和 extern inline 的含义
- static inline内嵌函数的理解
- C语言的Static Inline函数
- 关于头文件中的 static inline函数
- 转android的UI设计八
- Android遇到内存溢出(Out Of Memory)BUG的经验与解决方法
- ios------NSDictionary、NSMutableDictionary使用小结
- libxml2库函数添加子节点不能保存和不能换行以及读取子节点数不对的解决方法
- block和split的理解
- inline函数为什么最好要添加static
- 位运算的运用
- python 正则表达式
- 一转眼13年 马踏14间
- 一个PHP的数组工具UTIL
- object-c基本知识
- DAO层、model层、service层的理解
- jquery after append appendTo三个函数的区别
- Listening for and Reacting to Keyboard Notifications(键盘通知)