__io_putchar() 和 __io_getchar() 定义在哪个文件中?

Posted

技术标签:

【中文标题】__io_putchar() 和 __io_getchar() 定义在哪个文件中?【英文标题】:In what file are __io_putchar() and __io_getchar() defined? 【发布时间】:2021-08-29 20:37:40 【问题描述】:

我注意到 STM32F407-DISC 项目(通过 STM32CubeIDE 制作)的 syscalls.c 文件具有 __io_putchar()__io_getchar() 作为外部变量。 但我无法在项目中找到实际定义这些函数的任何文件。

这就是 syscalls.c 文件中的内容:

extern int __io_putchar(int ch) __attribute__((weak));
extern int __io_getchar(void) __attribute__((weak));

有谁知道这些外部人员是从哪个文件中提取的?

提前致谢!

【问题讨论】:

【参考方案1】:

它们在标准库中。所以你的项目中没有代码。您需要下载(克隆)STMCubeIDE工具链使用的标准库实现的源代码。

只需编写您自己的,它们就会用弱链接替换那些。

【讨论】:

以上是关于__io_putchar() 和 __io_getchar() 定义在哪个文件中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 STM32F10x 上重定向 printf()?

\_\_setitem\_\_和\_\_getitem和\_\_delitem__

描述符(\_\_get\_\_和\_\_set\_\_和\_\_delete\_\_)

__setattr__和__delattr__和__getattr__

图片热点,网页划区等和表单

Python-__init__ 和 __new__区别和原理