gpt4 book ai didi

c - 访问文件外部的静态函数

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

Contiki 3.0 将 setreg() 声明为 static,而在早期版本中则不是 static。我需要访问文件外部的函数来执行 setreg(CC2420_MDMCTRL0,0)。 (https://github.com/contiki-os/contiki/blob/master/dev/cc2420/cc2420.c#L392)

从函数原型(prototype)中删除 static 关键字是否合适?处理此类案件的标准做法是什么?

最佳答案

我不熟悉该特定代码,但如果一个函数被声明为static,则意味着它在其 translation unit 之外不可见。 .

我猜该软件的作者有充分的理由隐藏该 setreg 函数。你应该问他们为什么。

我想他们希望您调用一些公共(public)函数(例如cc2420_set_cca_threshold)来调用内部setreg。显然,大多数此类函数都是使用 GET_LOCKRELEASE_LOCK 锁定和解锁某些内容。

Is it good to just remove the static keyword from the function prototype?

不,这可能是非常错误的

What is the standard practice to deal with such cases?

花很多时间来了解特定的软件,研究其文档和源代码,了解编码人员使用的隐式不变量,并遵循它们。

(盲目地乱搞一些类似操作系统的代码肯定会导致灾难;如果做错了事情,您甚至可能会损坏硬件)

关于c - 访问文件外部的静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42454945/

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