函数定义后不能在其他函数调用问题
【摘要】
项目场景:
使用ART-Pi基于RT-Thread进行开发
问题描述:
在使用RTT做开发时,在一个函数c文件内定义了一个线程,想要在另外一个函数文件内调用,发现一直报错没有定义,报错如下:
...
项目场景:
使用ART-Pi基于RT-Thread进行开发
问题描述:
在使用RTT做开发时,在一个函数c文件内定义了一个线程,想要在另外一个函数文件内调用,发现一直报错没有定义,报错如下:
D:\RT-ThreadStudio\workspace\art_pi_factory_1\modules\OLE/oled.h:15:13: warning: 'oled_init' declared 'static' but never defined [-Wunused-function]
static void oled_init(void);
^
../modules/OLE/oled.c:15:13: warning: 'oled_init' defined but not used [-Wunused-function]
static void oled_init(void)
^
In file included from ../applications/main.c:18:0:
D:\RT-ThreadStudio\workspace\art_pi_factory_1\modules\OLE/oled.h:15:13: warning: 'oled_init' used but never defined
static void oled_init(void);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
原因分析:
报错显示未定义oled_init();但是oled_init()却已经定义,并且引用方式正常,然后仔细分析oled_init的定义方式,如下
static void oled_init(void);
- 1
然后百度,解决问题,static定义的变量或者函数只能在本地文件调用,不能被其他c文件调用,若想要在其他c文件调用,必须将其定义成全局变量;定义如下
void oled_init(void);
- 1
编译通过
解决方案:
删除静态static定义,改为全局定义函数,使之可以在其他c文件内调用!
文章来源: blog.csdn.net,作者:JeckXu666,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_45396672/article/details/112847505
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)