gpt4 book ai didi

c - 静态 C 库中的选择性变量定义

转载 作者:行者123 更新时间:2023-11-30 16:28:38 25 4
gpt4 key购买 nike

我正在为基于 8051 微 Controller 的图形 LCD 制作 C 静态库文件 (.lib)。有一些功能和3种字体可以在编译前选择(只允许一种字体)。该库应该包含一些不同的字体,例如:

#if defined FONT1
const uint8_t code font[size1] = { /* Font1 Data*/ }
#elif defined FONT2
const uint8_t code font[size2] = { /* Font2 Data*/ }

最终用户可以通过在给定的“.h”文件中定义它来选择一种所需的字体。当我测试时,不可能通过将上面的代码编写为库文件来做到这一点,只能使用一种显而易见的定义字体进行编译。另一方面,出于内存考虑,一次加载所有 3 种字体(在最终应用程序中)效率不高。有正确的方法吗?

最佳答案

您可以将字体拆分到不同的源文件中。然后,每个源文件将被构建到一个单独的目标文件( translation unit )中,如果您的链接器足够好,它将丢弃包含未使用符号的目标文件。

如果未使用的目标文件被丢弃,那么它们中的代码和数据当然不会成为最终链接的可执行文件的一部分。

关于c - 静态 C 库中的选择性变量定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52277064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com