gpt4 book ai didi

c - 未使用功能警告

转载 作者:太空狗 更新时间:2023-10-29 15:50:28 24 4
gpt4 key购买 nike

我在头文件中添加了 static 关键字的方法。例如

static int32_t Tlvlist_AddRawt(Tlvlist *a, uint8_t type, uint16_t size, const void *bytes);

该方法在 .c 文件中实现,其中静态函数名称中不存在关键字。

此方法是从同一 .c 文件的另一个函数调用的。后面的函数(使用此静态函数)也从 main 中调用。

但是我在头文件中收到警告:“Unused function 'Tlvlist_AddRawt'”。为什么会这样?

附言。我使用 Xcode。

最佳答案

当您将一个函数声明标记为静态时,它在它出现的翻译单元之外是不可见的。而且,它在出现的每个翻译单元中都代表不同的功能。因此,在头文件中使用 static 很少是个好主意,因为这样您就在每个包含头文件的 C 源代码中声明了一个单独的函数。

编译器诊断告诉您至少有一个 C 文件包含您的 header ,但没有提供 Tlvlist_AddRawt() 的定义以配合 header 中的声明。

如果你想声明一个与其定义分开的静态函数——例如为源文件中较早出现的其他函数制作原型(prototype)——那么将声明放在 C 源文件的顶部,其中它正文出现而不是出现在标题中。将它放在标题中会适得其反。

关于c - 未使用功能警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26308101/

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