打印
[应用相关]

各位大佬,那位知道stm32cubeied报:函数声明了未被调用警告怎么解决?(函数声明只是oled的显示功能)函数并没有语法错误

[复制链接]
937|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两只袜子|  楼主 | 2024-6-17 11:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

../Core/Src/oled.c:284:6: warning: 'OLED_ShowChinese24x24' defined but not used [-Wunused-function]

284 | void OLED_ShowChinese24x24(uint16_t x,uint16_t y,uint8_t *s,uint16_t fc,uint16_t bc,uint8_t sizey,uint8_t mode)

使用特权

评论回复
沙发
呐咯密密| | 2024-6-17 14:48 | 只看该作者
这个不用关注,不会影响正常运行

使用特权

评论回复
板凳
EmmaTT| | 2024-6-18 21:08 | 只看该作者
就是有些函数写了但没用上

使用特权

评论回复
地板
公羊子丹| | 2025-3-19 08:03 | 只看该作者
这个警告是因为 OLED_ShowChinese24x24 这个函数 在当前文件里没有被调用,编译器觉得它是多余的。

使用特权

评论回复
5
周半梅| | 2025-3-19 08:04 | 只看该作者
你确定这个函数在 其他文件 里被调用了吗?如果是静态函数 static,它就只能在 oled.c 里用,外部文件是看不到的。

使用特权

评论回复
6
帛灿灿| | 2025-3-19 08:05 | 只看该作者
如果你不想看到这个警告,可以在函数前面加 __attribute__((unused))

使用特权

评论回复
7
童雨竹| | 2025-3-19 08:06 | 只看该作者
你可以试试在 oled.h 里加上 extern 声明,然后确保在 oled.c 以外的地方调用它,这样就不会被当成未使用的函数。

使用特权

评论回复
8
万图| | 2025-3-19 08:07 | 只看该作者
这个函数是不是 条件编译 里了?比如 #ifdef OLED_USE_CHINESE 之类的,导致它没有被真正用到?

使用特权

评论回复
9
Wordsworth| | 2025-3-19 08:08 | 只看该作者
你试试在 oled.c 里找一找 OLED_ShowChinese24x24 这个函数的调用,看看是不是哪里写错了或者没加上。

使用特权

评论回复
10
Bblythe| | 2025-3-19 08:09 | 只看该作者
如果你不打算用这个函数,可以简单加 static 让编译器优化掉它,或者直接删掉,减少代码体积。

使用特权

评论回复
11
Pulitzer| | 2025-3-19 08:10 | 只看该作者
这个警告只是提醒你这个函数没被用,不影响编译,不影响程序运行,如果确实没用到,可以忽略。

使用特权

评论回复
12
Uriah| | 2025-3-19 08:11 | 只看该作者
你可以在 C/C++ Build → Settings → Compiler → Warnings 里关掉 -Wunused-function 这个警告,但一般不建议这么做。

使用特权

评论回复
13
Clyde011| | 2025-3-19 08:12 | 只看该作者
试试手动调用 OLED_ShowChinese24x24(...) 这个函数,看看它有没有真正运行?有时候函数名拼错了,导致没被调用。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2121

主题

8108

帖子

11

粉丝